我想在Eclipse中创建一个模板,用于以下面的方式从方法签名开始打印日志:
void myMethod(Type1 param1, Type2 param2){ logger.info("myMethod() - [param1: " + param1 + ", param2: " + param2 + "]"); }
字符串我尝试使用${enclosing_method_arguments}变量,但我还没有找到解决方案。
${enclosing_method_arguments}
nwsw7zdq1#
我认为这不可能只使用模板(除非您想开始解析生成的字符串)。看看这个Eclipse插件https://github.com/dernasherbrezon/eclipse-log-param。它应该能够产生(接近)预期的结果。
knpiaxh12#
看看here,用Reflection API试试或者你想改变你的方法来使用省略号(...);
void myMethod(Object... params){ StringBuilder strBuilder = new StringBuilder(); strBuilder.append("myMethod() - ["); for (int i=0; i<params.length; i++) { strBuilder.append("param"+(i+1)+": "+params[i]+","); } strBuilder.deleteCharAt(strBuilder.length()-1); //last comma deleted strBuilder.append("]"); logger.info(strBuilder.toString()); }
字符串
ijnw1ujt3#
我只能用Eclipse模板做的最好的事情是:
System.out.println("[FINE] ${enclosing_type}.${enclosing_method}(${enclosing_method_arguments}) = " + Stream.of(${enclosing_method_arguments}).map(Object::toString).collect(Collectors.joining(", ")));
字符串这将创建类似于以下内容的内容:
private void updateRenderScales(double sx, double sy) { System.out.println("[FINE] Window.updateRenderScales(sx, sy) = " + Stream.of(sx, sy).map(Object::toString).collect(Collectors.joining(", "))); }
型
3条答案
按热度按时间nwsw7zdq1#
我认为这不可能只使用模板(除非您想开始解析生成的字符串)。
看看这个Eclipse插件https://github.com/dernasherbrezon/eclipse-log-param。它应该能够产生(接近)预期的结果。
knpiaxh12#
看看here,用Reflection API试试
或者你想改变你的方法来使用省略号(...);
字符串
ijnw1ujt3#
我只能用Eclipse模板做的最好的事情是:
字符串
这将创建类似于以下内容的内容:
型