
关于JavaBeans规范有很多误解。
它存在的主要原因是统一的Java“组件”模型。这是一种使用反射与Java对象进行编程交互的方式。该API本身名为JavaBeans
Introspection。请看一下示例用法,您将比普通Java程序员了解更多。
自省API可用于以统一的方式 *** 作GUI元素。您的组件将其属性公开为一对getter和setter,以便可以在运行时在GUI构建器的属性表上对其进行发现和 *** 作。
因此,我认为混合使用流畅的API和JavaBeans
Spec是不可行的。那是两个完全不相关的概念,并且可以互相干扰。当方法签名不同(返回类型)时,JavaBeans自省可能不起作用。
看一下这个例子(摘自链接教程):
public class SimpleBean{private final String name = "SimpleBean";private int size;public String getName(){ return this.name;}public int getSize(){ return this.size;}public void setSize( int size ){ this.size = size;}public static void main( String[] args ) throws IntrospectionException{ BeanInfo info = Introspector.getBeanInfo( SimpleBean.class ); for ( PropertyDescriptor pd : info.getPropertyDescriptors() ) System.out.println( pd.getName() );}}本示例创建一个非可视Bean并显示从BeanInfo对象派生的以下属性:
- 类
- 名称
- 尺寸
您可能想看看将
void返回类型更改为其他任何类型时会发生什么。我这样做了,结果是一样的。那么,这是否意味着它被允许?
恐怕不行。JavaBeans规范对这些方法签名非常严格。碰巧的是实现是宽容的。但是,我不建议将流利的接口与JavaBeans混合使用。您不能真正依靠它,如果发现现在可行,将来也将如此。
但是,从另一方面看,您似乎没有充分使用JavaBean。只有getter / setter方法对。如何实现和设计API取决于您。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)