2010-12-01 3 views
4

Hi: В нашем приложении мы извлекаем некоторые данные из базы данных, например, в таблице есть columes: id, name, age, address, email.добавить свойство для объекта динамически

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

Если клиенту нужен идентификатор, имя, мы получаем идентификатор, если клиент нуждается в 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)); 
} 

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

ответ

2

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

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

+0

:(Благодарю вас. – hguser 2010-12-01 10:47:36

Смежные вопросы