我想避免重复的代码膨胀和输入定义“C-struct-like”类的乏味,如:
class Foo {
int x;
float y;
String z;
public Foo(int x, float y, String z) {
this.x = x;
this.y = y;
this.z = z;
}
}
?例如。有什么Eclipse技巧可能会有帮助吗?
要了解“code-bloat”的含义,请将上述内容与在C中定义相应结构所需的内容进行比较:
struct foo {
int x;
float y;
char *z;
}
每个成员字段只提到一次,而在Java代码中需要提及三次(其中一个以相应的构造函数参数的形式提供)。
答案 0 :(得分:4)
在eclipse中,您可以右键单击java编辑器,source - >使用字段生成构造函数。 我猜这就是你要找的东西。
答案 1 :(得分:2)
Eclipse在“源”菜单中有一个“使用字段生成构造函数...”。
答案 2 :(得分:2)
您可以在Java中执行此操作,但这违反了基本的OOP原则:
class Foo {
public int x;
public float y;
public String z;
}
其他一些课程:
Foo foo = new Foo();
foo.x = 1;
// etc..
就像C
s struct:
struct Foo {
int x;
float y;
char *z;
};
struct Foo foo;
foo.x = 1;
// etc...
答案 3 :(得分:1)
不幸的是,如果你想在构造函数中初始化这些值,那么在Java中就没办法了。如果你对另一种JVM语言开放,Scala有一个解决方案......
编辑:您可以将所有字段公开。从理论上讲,这是一个坏主意。在实践中,有时它是正确的解决方案。