【问题标题】:Plugin IntelliJ Java automatically create codePlugin IntelliJ Java 自动创建代码
【发布时间】:2019-11-18 17:20:18
【问题描述】:

在此示例中,increment() 被调用了 2 次。

问题:是否存在一些插件,比如 IntelliJ,我可以在其中使用这行代码 使用 a.increment().increment();并将其替换为以下行: a.increment().increment()..1000..times..increment(); // 因此 increment() 被调用了 1000 次?

 public class A {
       int a=0;
       A increment() {
           a++;
           return this;
       }

    }
    public static void main (String [] args) {
        A a = new A();
        a.increment().increment();  // increment is invoked 2 times but I need 1000 times
    }

【问题讨论】:

  • 你为什么要这样做a.increment().increment()..1000..times..increment(); ??
  • 因为这个问题与我对 Lisp 宏的研究有关,并且可能(我还不确定)与 Scala 宏有关
  • AFAIK,没有这样的插件。你确定你在做什么是正确的?仍然不相信你为什么需要做类似a.increment().increment()..1000..times..increment()
  • 我很确定不存在这样的插件,因为用例非常模糊,可以通过一个简单的循环来完成。顺便说一句,这听起来真是个坏主意。
  • 为什么你需要 1000 次调用来递增来研究效果?这可能是 xy 问题的征兆。你到底想达到什么目的?

标签: java intellij-idea plugins automation


【解决方案1】:

我不确定我是否完全理解你的问题。

如果你真的想写那行 1000 次(我不会问背后的黑暗原因是什么),我不知道有什么插件可以做到这一点,但你实际上可以使用类似的工具来帮助自己记事本++,然后从那里复制并粘贴结果。

要在 Notepad++ 中这样做,只需复制.increment(),点击顶部的start recording 按钮,粘贴,点击stop recording,选择Run a Macro Multiple Times,选择1000 次,点击运行,瞧。


现在,如果您只想运行 1k 次并且不介意您的代码是否看起来不错,您可以将您的代码置于任何类型的循环中。

在非常基础的层面上:

public class A {
   int a=0;
   A increment() {
       a++;
       return this;
   }
}

public static void main (String [] args) {
    A a = new A();
    int i = 0;
    while (i < 1000) {
        a.increment();
        i++;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 2017-06-27
    • 2017-11-05
    • 2020-09-30
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多