如何减少Java构造函数的重复性和膨胀性?

时间:2011-08-18 22:54:42

标签: java eclipse

我想避免重复的代码膨胀和输入定义“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代码中需要提及三次(其中一个以相应的构造函数参数的形式提供)。

4 个答案:

答案 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有一个解决方案......

编辑:您可以将所有字段公开。从理论上讲,这是一个坏主意。在实践中,有时它是正确的解决方案。