【发布时间】:2016-11-24 07:51:03
【问题描述】:
我最近发现了一个编码网站,有编码竞赛:CodinGame,为了解决问题,我们必须只将它们交给一个带有 main 的文件(在以下示例中,类 Player ),如果需要其他类,我们将它们包含在此文件中。
为了这个目的(并且看起来是为another coding site工作),我已经下载了intelliJ和plugin CHelper,以便将所有源文件放入一个java文件中(这应该是CHelper的目的插入)。问题是:我不明白如何为我的编码站点使用/设置这个插件。我知道它应该可以工作,因为该站点的另一个用户已经为此目的使用了该插件。
我想要什么
对于我想要的更详细的示例,这里是带有 main 的类:
// Class Player in file Player.java
public class Player {
public static void main(String[] args) {
System.out.println(new Cell(1,2).toString());
}
}
而且这个类 Cell 在另一个 java 文件中:
// Class Cell in file Cell.java
public class Cell {
int x,y;
public Cell(int x, int y) {
this.x = x;
this.y = y;
}
public String toString() {
return "["+x+","+y+"]";
}
}
并且我希望插件合并两个(或更多)java文件以便拥有这个:
// Generated : 2 files merged into one file: Player.java
public class Player {
public static void main(String[] args) {
System.out.println(new Cell(1,2).toString());
}
// Class Cell merged in this file
public class Cell {
int x,y;
public Cell(int x, int y) {
this.x = x;
this.y = y;
}
public String toString() {
return "["+x+","+y+"]";
}
}
}
我的成就
我正确安装了 IntelliJ,并下载了 CHelper 插件。 我安装了链接到 TopCoder 的工具栏菜单按钮(该插件专门用于该站点),但是 Launch TopCoder 按钮抛出 RuntimeException : cannot run program .../javaws no such file。 通过从 TopCoder 下载一些任务,我成功地将 2 个文件合并为一个:TaskA.java 到 Main.java(已下载模板)
什么是理想的
如果 Eclipse 插件可以像我想要的那样工作,我会很高兴知道它。事实上,这就是我在搜索开始时要寻找的东西,我只找到了一些 IntelliJ IDE 的插件。
【问题讨论】:
-
如果您还没有创建使用此插件的项目,只需在
class关键字前面加上static就容易多了,将这个类标记为独立于它的封闭类.这确保了封闭类的实例独立于它所包含的类的实例。例如,您的代码中的类Cell将以static为前缀。 -
嗯,这个插件真的是为了“正确”编码。我希望能够将不同文件中的类分开(每个类一个不同的文件),然后用这个工具将它们合并到一个文件中。我知道我应该在合并的代码中为类
Cell放置一个static,实际上我在我的实际 Player 类中拥有它(手动完成)。我在Player类中有类似 7 个内部类的层次结构,这就是为什么我想将它们分开(不那么脏的代码),而且我希望能够轻松地测试它们。
标签: java eclipse intellij-idea