Домой Учебники по Java и J2EE Java: как скопировать свойства из одного компонента в другой

Java: как скопировать свойства из одного компонента в другой

553
0

Большинство разработчиков 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, который демонстрирует способ копирования свойств из одного компонента в другой.

CrunchifyBeanCopyExample.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

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

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 зависимости:

ЧИТАТЬ ТАКЖЕ:  Java: Как добавить «n» минут в объект данных календаря?

Apache Common Beanutils Maven зависимость

pom.xml

1
2
3
4
5
< зависимость >
     < groupId > commonsbeanutils < / groupId >
     < artifactId > commonsbeanutils < / artifactId >
     < версия > 1.9.3 < / версия >
< / зависимость >

Apache Commons Ведение журнала зависимости Maven

pom.xml

1
2
3
4
5
< зависимость >
     < groupId > commonslogging < / groupId >
     < artifactId > commonslogging < / artifactId >
     < версия > 1.2 < / версия >
< / зависимость >
Java: как скопировать свойства из одного компонента в другой

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь