编写JavaBean类的正确规则是什么?
我很困惑,因为有些书必须使用,而其他用户应该或可以描述
写作规则:
IE。
最佳答案
JavaBean是由其属性(即其getter和setter方法)而不是其字段定义的。尽管这些术语可以互换使用,但这实际上是不正确的。 Introspector
机制完全忽略字段。
示例
使用这个(经过精心设计的)Javabean:
public class TestBean {
private int baz;
private char[] phleem;
public String getFoo() {
return new String(phleem);
}
public void setFoo(final String foo) {
this.phleem = foo.toCharArray();
}
public long getBar() {
return baz;
}
public void setBar(final long bar) {
this.baz = (int) bar;
}
}
您会认为这些属性是:
int
)char[]
)但是现在让我们用Javabeans内省(introspection)器来检查它:
for (PropertyDescriptor descriptor : Introspector
.getBeanInfo(TestBean.class, Object.class)
.getPropertyDescriptors()) {
System.out.println("Name: " + descriptor.getName() +
", type: " + descriptor.getPropertyType());
}
这是输出:
Name: bar, type: long
Name: foo, type: class java.lang.String
结论:
getter和setter是定义Javabeans属性的对象。按照惯例,它们由相同名称和类型的字段支持,但是这些字段实际上并不是Javabean属性的一部分(尽管许多文档会另外建议)。
在重新阅读我的答案时:它是对其他答案的补充。如果您想得到一个简短的答案,请使用skaffman的答案。
关于java - JavaBean类规则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5935226/