Java Bean:过度的关联数组?

Jer*_*ell 7 java reflection javabeans

我不太了解Java Bean的本质.好吧,至少我是如何看待它们在一些通过我们商店的代码库中使用的.

我发现了这个问题:

Java Beans:我错过了什么?

那里接受的答案让程序员看起来像是在滥用Java Bean(我真的不怀疑),但是我觉得这种情况经常发生,故意,我想我还是会遗漏一些东西.

我看到的代码如下:

public class FooBean {
  private int a;
  private int b;
  private int c;

  public int getA() { return a; }
  public int setA(int x) { a = x; }

  // etc...
}
Run Code Online (Sandbox Code Playgroud)

没有进一步的结构或控制比吸气剂和制定者.是否存在某种超级棒的编译器技巧,包括反射,getter和setter,以及是否需要一些非常笨拙(但编译器优化)的静态关联数组?

或许我完全忽略了这一点.:\

干杯!

编辑:

绝对不是在这里宣传公共领域的想法.

Bil*_*l K 8

实际上,是的,有魔法在继续.

这是一个非常愚蠢的模式,但GUI bean(所有组件都是)旨在由GUI构建器进行反射分析.公共集/获取字段旨在成为用户在构建GUI时可以使用的"属性".

编辑:为了防御太阳,我应该说尽管这个模式非常令人讨厌,因为所有人都复制了它并开始在整个非bean代码中使用它,它确实允许人们将类与GUI构建器集成不使用任何外部元数据.您不需要编辑器的任何XML文件或属性文件,它就像扩展Button并将新对象放到托盘上一样简单.

这种模式已在其他地方使用,正如您所注意到的,它与拥有公共字段几乎相同.我认为这是设置java时创建的最糟糕的模式之一,但没有其他明显的解决方案(我认为整个概念是由第一批尝试在java发布之前构建第一个GUI构建器的人所强调的).

现在有一个更好的解决方案:使用注释标记私有字段,反射工具仍然可以分析它们并将它们绑定到构建器控件.这将是一个很好的清洁工具,并不会使所有对象都容易受到外部状态变化的影响.