JC13 - Lecture 04. Reflection
Mirantis Java Сourse 2013 (back)
Lecture 04. Reflection
Java Class Loaders
Практическое задание (на занятии) #1 / Домашнее задание
Необходимо реализовать класс BeanUtil
со следующим функционалом (статическими методами):
properties(Object bean)
- список всех property указанногоbean
, например:["a", "b", "c", "d"]
;get(Object bean, String props)
- получение значения property по имени с поддержкой вложенности, т.е.get(bean, "a/b/c/d")
должен превратиться в вызовbean.getA().getB().getC().getD()
;set(Object bean, String props, Object value)
- аналогичноget
выставляет значение, т.е.set(bean, "a/b/c/d", "new value!")
должен превратиться в вызовbean.getA().getB().getC().setD("new value!")
type(Object bean, String props)
- аналогичноget
, но возвращает только тип поля, напримерtype(bean, "a/b/c/d")
вернетclass java.lang.String
.
Некоторые определения:
Java Bean
- класс с private полями, как минимум конструктором по-умолчанию и геттерами-сеттерами;property
- это нечто для чего есть геттер и сеттер, т.е. если есть getFoo() и setFoo(), то есть propertyfoo
.