Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Add property to object 
:(
    Опции темы
Tony
  Дата 3.3.2006, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Можно ли добавить/удалить property(setter/getter) из oбъекта


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
chief39
Дата 3.3.2006, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 11
Всего: 77



Цитата(Tony @ 3.3.2006, 13:26 Найти цитируемый пост)
Можно ли добавить/удалить property(setter/getter) из oбъекта

Поясни значение "удалить". Что именно ты хочешь? Изменить объект? Или что-то вроде установить свойство в null?


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
Tony
  Дата 3.3.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Есть объект.У него проперти name.Соответственно есть setName/getName.Mne nuzno dobavit' property lastaname i 4tobi sgenerilis' metodi setLastname i getLastname.


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
batigoal
Дата 3.3.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Имеется в виду динамически, во время работы программы?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Tony
Дата 3.3.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Естественно


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
batigoal
Дата 3.3.2006, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



А стоит ли так извращаться? Не вижу смысла в такой задаче, честно говоря. Можно узнать подробности?
Почему нельзя обойтись просто коллекцией параметров (обычно - HashMap), и добавлять/удалять параметры по мере необходимости?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
powerOn
Дата 3.3.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Динамически нельзя. Класс уже скомпилирован.

А если не секрет зачем?


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Tony
  Дата 3.3.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



EX....
Ponimaeh mne vozvrashaetsja List objecktov.No u etih objectov netu prpoerty enable(type boolean).Poetomu mne prihoditsja sozdavat' novij list s novimi objektami (u katorih est' property enable).Kopirivat' zna4enija iz kazdogo objekta iz sozdavat' novij object s propery enable i pomeshat' v novij list.O4en gemorojno.


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
batigoal
Дата 3.3.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Мне кажется, создание нового объекта будет вполне логичным решением. Я не уверен, что к существующему объекту вообще можно добавить новое поле. А если даже можно - уверен, это будет ОЧЕНЬ ресурсоемкая операция. Поэтому, мне кажется, лучше всего не мучаться, а сделать класс-обертку вида
Код

class EnablingElement
{
  Element element;
  boolean enable;

  EnablingElement(Element element)
  {
    this.element = element;
  }
}

Ну и создавать список из EnablingElement'ов.


Либо подкорректировать класс начального списка объектов.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Tony
Дата 3.3.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Nas4ot obvjortok horoshja ideja.Thanks.


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
batigoal
Дата 3.3.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Кстати, при вводе поста можно установить галочку "транслит" (она под смайликами), тогда буквы будут транслитерироваться в кириллицу. Вроде ее уже починили...


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Tony
  Дата 3.3.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Просто когда текст англ/рус надоедает переклучать чецкбох


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
LSD
Дата 3.3.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 5
Всего: 538



Цитата(Tony @ 3.3.2006, 15:05 Найти цитируемый пост)
Просто когда текст англ/рус надоедает переклучать чецкбох

Он включается/выключается Esc-ом.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
tux
Дата 4.3.2006, 05:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Можно попробовать использовать генератор кода CGlib, но это вряд ли упростит решение.
PM MAIL Skype GTalk Jabber YIM   Вверх
Tony
  Дата 14.3.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Код

public class Test {
    Test(){
        
        DynaProperty[] properties = 
        { new DynaProperty("loginDate", Date.class),
          new DynaProperty("name", String.class),
          new DynaProperty("password", String.class), 
          new DynaProperty("my", String.class) 
        };
        
        DynaClass userDynaClass = new BasicDynaClass("user", null, properties);
        
        Map map = new HashMap();
        map.put("name", "jason");
        map.put("password", "secret");
        map.put("loginDate", new Date());
        map.put("my", "Yo yo");
        try{
        DynaBean user = userDynaClass.newInstance();
        BeanUtils.populate(user, map);
        System.out.println(BeanUtils.getProperty(user,"my")); // displays 'jason'
        }catch(Exception e){
            e.printStackTrace();
        }
        
    }
    
    public static void main(String [] args){
        new Test();
    }
        
}

Код

public class User {
    private Date loginDate;
    private String name;
    private String password;

    public User() { }

    public Date getLoginDate() {
        return loginDate;
    }

    public String getName() {
        return name;
    }

    public String getPassword() {
        return password;
    }

    public void setLoginDate(Date loginDate) {
        this.loginDate = loginDate;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public static User getUser(String name) {
       return new User();
    }
}

smile smile


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0988 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.