Java构造函数模式

Jac*_*erk 6 java guice

我使用的模式非常多:

class Blah
  int a;   
  double b;   
  String c;   
  Date d;   

  public Blah(int a, double b, String c, Date d) {
      super(); // possibly   
      this.a = a;   
      this.b = b;
      this.c = c;
      this.d = d;
  }
Run Code Online (Sandbox Code Playgroud)

对于这么简单的事情来说,这确实是一个很大的样板.我正在考虑一个通用的对象工厂用内省来做这件事,但这感觉非常邪恶(特殊情况,继承和速度问题).可以使用Guice并完全跳过构造函数,但是手动创建对象会很难看.

这是我将不得不在Java中使用的东西,还是有办法避免这种样板?

dar*_*jan 5

尝试使用Lombok(http://projectlombok.org/)

您可以仅使用注释生成getter,setter和构造函数.

  • 我一直想知道,如果您完全没有验证,那么为私人会员使用getter和setter有什么意义呢?为什么不只是有公共成员(当字段也是最终时更是如此)?我知道你是将实现与接口分开,但是如果setter和getter直接链接到成员变量名,那么这种目的会失败,不是吗? (4认同)
  • @Supericy绝对同意那个.我在SO回答中多次提倡这个立场,通常最后都是负面投票.他们的论点:关于"验证"的所有标准废话,这些废话在现实中从未发生过,子类"覆盖"了一个二传手,等等. (2认同)