2017-02-17 47 views
1

在Java中,我们拥有原始数据类型和包装类。我想知道我们是否可以在bean中使用包装类代替原始数据类型,因为包装类是最终意义上的恒定值,我们不能改变它。在bean中,我们使用构造函数来设置值或Mutator方法。Java Bean和包装类

Class Employee{ 

    private int employeeId; //we can use Integer in place of int 
    private String employeeName; 
    } 
+0

包装类不会让事情比原始数据类型更不可变;如果这是你的目标,那就没有意义了。在两种情况下,只有当它没有标记为“final”时,它才能被修改。 –

回答

0

是的,你可以,JavaBeans规范中没有任何东西禁止它。你只需要知道你正在做出的权衡。

例如,考虑下面的类:

class Employee { 
    private Integer employeeId; 

    void setEmployeeId(Integer employeeId) { 
     this.employeeId = employeeId; 
    } 
} 

调用setEmployeeId(1001)将导致JVM自动创建一个Integer包装对象(自动装箱)。这是您避免使用原语的成本。

还要指出的是employeeId初始值将是null,而对于primite int,这将是0

0

是的,我相信这是确定。一个bean需要可序列化,具有一个零参数构造函数,并通过getters和setter访问其字段。

只要字段类型是可序列化的,你就很好。

+0

请注意,通过Google的快速搜索,您可以访问[wikipedia page](https://en.wikipedia.org/wiki/JavaBeans),它可以清楚地说明bean是什么。 –