Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Передать и распознать объект / 14 сообщений из 14, страница 1 из 1
23.11.2006, 11:04:49
    #34149242
LeKo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
Подскажите, пожалуйста, в след. вопросе., абсолютно не опытному в Java человеку.
Допустим, есть
Class1 cl1 = new Class1();
Class2 cl2 = new Class2();
Необходимо, в некий метод передать объект cl1 (или сl2), и в теле метода распознать является ли параметр экземпляром класса Class1 или Class2?
...
Рейтинг: 0 / 0
23.11.2006, 11:07:56
    #34149254
ррмяф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
LeKoПодскажите, пожалуйста, в след. вопросе., абсолютно не опытному в Java человеку.
Допустим, есть
Class1 cl1 = new Class1();
Class2 cl2 = new Class2();
Необходимо, в некий метод передать объект cl1 (или сl2), и в теле метода распознать является ли параметр экземпляром класса Class1 или Class2?
Код: plaintext
1.
2.
3.
4.
5.
 void  parseObject(Object obj) {
    if  (obj  instanceof  Class2) {
   ...
   }
}
...
Рейтинг: 0 / 0
23.11.2006, 11:09:08
    #34149261
dremmmmm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
void set(Object o){

if(o instanceof Class1){
System.out.println("this is Class1");
}
if(o instanceof Class2){
System.out.println("this is Class2");
}

}
...
Рейтинг: 0 / 0
23.11.2006, 11:10:35
    #34149267
dremmmmm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
ну не мог я 10 строк 2 минуты писать :-)
...
Рейтинг: 0 / 0
23.11.2006, 11:19:44
    #34149327
hinotf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
if (c1 instanceof Class1)....

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
...
Рейтинг: 0 / 0
23.11.2006, 11:24:42
    #34149354
mysterio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
Напишите сразу задачу. Что вы делаете в методе. А то получится, что через instanceof реализуется например полиморфизм.
...
Рейтинг: 0 / 0
23.11.2006, 11:32:16
    #34149407
Зашедший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
А еще можно сделать так:
Код: plaintext
1.
2.
3.
 if  (C1. class .isAssignableFrom(cl.getClass()) {
...
}
Это приходится применять, когда собственно класс, на приводимость к которому проверяется объект, еще неизвестен и передается как параметр функции.
...
Рейтинг: 0 / 0
23.11.2006, 11:32:58
    #34149409
LeKo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
mysterioНапишите сразу задачу. Что вы делаете в методе. А то получится, что через instanceof реализуется например полиморфизм.
Нет. Все очень просто, примерно как написал dremmmmm . Всем огромное спасибо.
...
Рейтинг: 0 / 0
23.11.2006, 12:33:37
    #34149774
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
Я бы подумал об проблемах в дизайне программы, если нужно использовать instanceof.
...
Рейтинг: 0 / 0
23.11.2006, 12:55:44
    #34149867
mysterio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
Именно на это я и хотел натолкнуть. Leonidv правда более ясно выразил мысль.

Хотя.. если мне не изменяет память, один раз мне instanceof пригодился, но не помню зачем :)
...
Рейтинг: 0 / 0
23.11.2006, 13:17:39
    #34149980
zalexaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
из спринга

Код: plaintext
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.
 public   class  ApplicationContextAwareProcessor  implements  BeanPostProcessor {

...

 public  Object postProcessBeforeInitialization(Object bean, String beanName)  throws  BeansException {
		 if  (bean  instanceof  ResourceLoaderAware) {
			 if  (logger.isDebugEnabled()) {
				logger.debug("Invoking setResourceLoader on ResourceLoaderAware bean '" + beanName + "'");
			}
			((ResourceLoaderAware) bean).setResourceLoader( this .applicationContext);
		}
		 if  (bean  instanceof  ApplicationEventPublisherAware) {
			 if  (logger.isDebugEnabled()) {
				logger.debug("Invoking setApplicationEventPublisher on ApplicationEventPublisherAware bean '" +
						beanName + "'");
			}
			((ApplicationEventPublisherAware) bean).setApplicationEventPublisher( this .applicationContext);
		}
		 if  (bean  instanceof  MessageSourceAware) {
			 if  (logger.isDebugEnabled()) {
				logger.debug("Invoking setMessageSource on MessageSourceAware bean '" + beanName + "'");
			}
			((MessageSourceAware) bean).setMessageSource( this .applicationContext);
		}
		 if  (bean  instanceof  ApplicationContextAware) {
			 if  (logger.isDebugEnabled()) {
				logger.debug("Invoking setApplicationContext on ApplicationContextAware bean '" + beanName + "'");
			}
			((ApplicationContextAware) bean).setApplicationContext( this .applicationContext);
		}
		 return  bean;
	}
...
}
...
Рейтинг: 0 / 0
23.11.2006, 13:25:47
    #34150004
mysterio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
В принципе это можно было бы реализовать и через полиморфизм, что было бы даже лучше ввиду того, что не нужно было бы при реализации новой сущности прописывать еще одно ветвление if.
...
Рейтинг: 0 / 0
23.11.2006, 13:48:49
    #34150145
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
instanceof применяется при грамотной реализации метода equals. Еще, как мне видится, есть его применение в разных фрэймворках. Но они еще и рефлексию используют, и еще черт знает что.
В обычных приложениях, наверное, лучше все-таки по другому делать.
...
Рейтинг: 0 / 0
23.11.2006, 13:56:49
    #34150183
zalexaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать и распознать объект
2 Leonidv
согласен.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Передать и распознать объект / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]