добавить свойство для объекта динамически - PullRequest
4 голосов
/ 01 декабря 2010

Привет: В нашем приложении мы получили некоторые данные из базы данных, например, в таблице есть столбцы: id, имя, возраст, адрес, адрес электронной почты.

Тогда мы получим некоторые из этих свойств в соответствии с клиентом.

Если клиенту нужен идентификатор, имя, мы получаем имя идентификатора, если клиенту нужен идентификатор, имя, возраст, мы получаем идентификатор, имя, возраст.

Теперь мы хотим создать класс для переноса этих свойств. Однако мы не знаем точно, какие поля запрашиваются.

String[] requestPro={"name","id"}; //this field is specified by client
Map<String, Object> map=new HashMap<String, Object>();
Entity en=Entity.newInstance();
for(String p:requestPro){
    map.put(p, BeanUtils.getProperty(en, p));
}

Здесь можно заменить карту классом?

1 Ответ

2 голосов
/ 01 декабря 2010

Если я вас правильно понимаю, вы хотите динамически добавлять свойства в класс, а точнее: в конкретный экземпляр класса.

Первое возможно, например, в Groovy, где для каждого класса есть объект метакласса, которому вы можете назначить поведение во время выполнения, последний возможен в JavaScript, где вы можете назначить поведение как прототипу объекта, так и самому объекту. Но ни одна из этих версий невозможна в Java, поэтому в Java лучше использовать Map или подобную структуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...