java 如何在eclipse模板中迭代方法参数?

9rygscc1  于 2023-08-02  发布在  Java
关注(0)|答案(3)|浏览(89)

我想在Eclipse中创建一个模板,用于以下面的方式从方法签名开始打印日志:

void myMethod(Type1 param1, Type2 param2){

         logger.info("myMethod() - [param1: " + param1 + ", param2: " + param2 + "]");

    }

字符串
我尝试使用${enclosing_method_arguments}变量,但我还没有找到解决方案。

nwsw7zdq

nwsw7zdq1#

我认为这不可能只使用模板(除非您想开始解析生成的字符串)。
看看这个Eclipse插件https://github.com/dernasherbrezon/eclipse-log-param。它应该能够产生(接近)预期的结果。

  • 注:我自己也没试过。
knpiaxh1

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());

   }

字符串

ijnw1ujt

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(", ")));
}

相关问题