Содержание
Большинство разработчиков Java используют для создания классов Java, которые соответствуют шаблонам именования JavaBeans для методов получения и установки свойств. Впоследствии естественно обращаться к этим методам напрямую, используя вызовы соответствующих методов getXxx и setXxx .
Однако в некоторых случаях требуется динамический доступ к свойствам объекта Java (без компилированного знания вызываемых методов получения и установки свойств).
Примеры использования включают в себя:
- Создание языков сценариев, взаимодействующих с объектной моделью Java (например, Bean Scripting Framework ).
- Создание шаблонных языковых процессоров для веб-презентации и аналогичных целей (таких как JSP или Velocity).
- Создание пользовательских библиотек тегов для сред JSP и XSP (таких как Apache Taglibs, Struts, Cocoon).
- Использование ресурсов конфигурации на основе XML (таких как сценарии сборки Ant, дескрипторы развертывания веб-приложений, файл server.xml Tomcat).
Джакарта общин BeanUtils Библиотека обладает разнообразными функциональными возможностями для работы с JavaBeans. Версия BeanUtils 1.8.3 зависит от CommonsLogging library ,
Кроме того, в этом уроке я использовал ToStringBuilder в библиотеке Commons Lang для вывода свойств JavaBeans в этом примере.
Другой должен прочитать:
- Как программно генерировать дамп Java-потока
- Как переопределить метод equals () и hashcode () в Java
Это простой пример Java, который демонстрирует способ копирования свойств из одного компонента в другой.
CrunchifyBeanCopyExample.java
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
пакет crunchify. ком . учебник ;
Импортировать Java. яз. отражать. InvocationTargetException ;
Импортировать орг. апач . Общин. beanutils . BeanUtils ;
Импортировать орг. апач . Общин. яз. строитель. ToStringBuilder ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyBeanCopyExample {
общественности статический недействительным main ( Строка [ ] аргументы ) {
CrunchifyBeanCopyFrom bean1 знак равно новый CrunchifyBeanCopyFrom ( Crunchify , «Онлайн уроки по Java и WordPress» ) ;
CrunchifyBeanCopyTo bean2 знак равно новый CrunchifyBeanCopyTo ( Paypal , «Финансовое место» ) ;
Система. вне. (. ToStringBuilder reflectionToString (bean1)) Println;
Система. вне. (. ToStringBuilder reflectionToString (bean2)) Println;
пытаться {
Система. вне. println ( / nКопирование свойств из fromBean в toBean … / n ) ;
BeanUtils . copyProperties ( bean2 , bean1 ) ;
} ловить ( IllegalAccessException е ) {
эл . printStackTrace ( ) ;
} ловить ( InvocationTargetException е ) {
эл . printStackTrace ( ) ;
}
Система. вне. (. ToStringBuilder reflectionToString (bean1)) Println;
Система. вне. (. ToStringBuilder reflectionToString (bean2)) Println;
}
}
|
CrunchifyBeanCopyFrom.java
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
пакет ком . crunchify. учебные пособия ;
Импортировать Java. Ио. Сериализуемый ;
/ **
* @author Crunchify.com
*
* /
@SuppressWarnings ( серийный )
общественности учебный класс CrunchifyBeanCopyFrom инвентарь Сериализуемый {
частный строка имя ;
частный строка myProp ;
общественности CrunchifyBeanCopyFrom ( ) {
}
общественности CrunchifyBeanCopyFrom ( String имя , строка myProp ) {
это. название знак равно имя ;
это. myProp знак равно myProp ;
}
общественности строка getMyProp ( ) {
вернуть myProp ;
}
общественности недействительным setMyProp ( String опора ) {
myProp знак равно опора ;
}
общественности строка getName ( ) {
вернуть имя ;
}
общественности недействительным setName ( String имя ) {
это. название знак равно имя ;
}
}
|
CrunchifyBeanCopyTo.java
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
пакет ком . crunchify. учебные пособия ;
Импортировать Java. Ио. Сериализуемый ;
/ **
* @author Crunchify.com
*
* /
@SuppressWarnings ( серийный )
общественности учебный класс CrunchifyBeanCopyTo инвентарь Сериализуемый {
частный строка имя ;
частный строка myProp ;
общественности CrunchifyBeanCopyTo ( ) {
}
общественности CrunchifyBeanCopyTo ( String имя , строка myProp ) {
это. название знак равно имя ;
это. myProp знак равно myProp ;
}
общественности строка getMyProp ( ) {
вернуть myProp ;
}
общественности недействительным setMyProp ( String опора ) {
myProp знак равно опора ;
}
общественности строка getName ( ) {
вернуть имя ;
}
общественности недействительным setName ( String имя ) {
это. название знак равно имя ;
}
}
|
Выход:
|
1
2
3
4
5
6
7
|
crunchify. ком . учебник . CrunchifyBeanCopyFrom @ 58fe210a [ name = Crunchify , myProp = Online Java и WordPress Учебники]
crunchify. ком . учебник . CrunchifyBeanCopyTo @ 66780515 [ name = Paypal , myProp = Financial Place ]
Копирование свойств из fromBean в Боб . , ,
crunchify. ком . учебник . CrunchifyBeanCopyFrom @ 58fe210a [ name = Crunchify , myProp = Online Java и WordPress Учебники]
crunchify. ком . учебник . CrunchifyBeanCopyTo @ 66780515 [ name = Crunchify , myProp = Онлайн Java и WordPress Учебники]
|
Вот maven зависимости:
Apache Common Beanutils Maven зависимость
|
1
2
3
4
5
|
< зависимость >
< groupId > commons — beanutils < / groupId >
< artifactId > commons — beanutils < / artifactId >
< версия > 1.9.3 < / версия >
< / зависимость >
|
Apache Commons Ведение журнала зависимости Maven
|
1
2
3
4
5
|
< зависимость >
< groupId > commons — logging < / groupId >
< artifactId > commons — logging < / artifactId >
< версия > 1.2 < / версия >
< / зависимость >
|
0.00 (0%) 0 votes








