2017-02-17 3 views
1

В Java у нас есть примитивные типы данных и классы-оболочки для них. Я хочу знать, можем ли мы использовать класс-оболочку в bean-компонентах вместо примитивных типов данных, потому что класс-оболочка является конечным средством, имеющим постоянную ценность, и мы не можем его изменить. В bean-компонентах мы создаем конструктор для установки значений или методов Mutator.Java Beans & Wrapper Class

Пример

Class Employee{ 

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

Классы Wrapper не позволят вещам быть более неизменными, чем примитивные типы данных; если это ваша цель, нет смысла. В обоих случаях он может быть изменен тогда и только тогда, когда он не помечен '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

Да, я считаю, что это нормально. Компонент должен быть сериализуемым, иметь конструктор с нулевым аргументом и предоставлять доступ к его полям через геттеры и сеттеры.

Пока типы полей сериализуемы, вы хороши.

+0

Обратите внимание, что быстрый поиск в Google приводит вас к странице [wikipedia page] (https://en.wikipedia.org/wiki/JavaBeans), которая дает четкое объяснение того, что такое bean-компонент. –