powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Передать и распознать объект
14 сообщений из 14, страница 1 из 1
Передать и распознать объект
    #34149242
LeKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, в след. вопросе., абсолютно не опытному в Java человеку.
Допустим, есть
Class1 cl1 = new Class1();
Class2 cl2 = new Class2();
Необходимо, в некий метод передать объект cl1 (или сl2), и в теле метода распознать является ли параметр экземпляром класса Class1 или Class2?
...
Рейтинг: 0 / 0
Передать и распознать объект
    #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
Передать и распознать объект
    #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
Передать и распознать объект
    #34149267
dremmmmm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну не мог я 10 строк 2 минуты писать :-)
...
Рейтинг: 0 / 0
Передать и распознать объект
    #34149327
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if (c1 instanceof Class1)....

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

Хотя.. если мне не изменяет память, один раз мне instanceof пригодился, но не помню зачем :)
...
Рейтинг: 0 / 0
Передать и распознать объект
    #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
Передать и распознать объект
    #34150004
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе это можно было бы реализовать и через полиморфизм, что было бы даже лучше ввиду того, что не нужно было бы при реализации новой сущности прописывать еще одно ветвление if.
...
Рейтинг: 0 / 0
Передать и распознать объект
    #34150145
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
instanceof применяется при грамотной реализации метода equals. Еще, как мне видится, есть его применение в разных фрэймворках. Но они еще и рефлексию используют, и еще черт знает что.
В обычных приложениях, наверное, лучше все-таки по другому делать.
...
Рейтинг: 0 / 0
Передать и распознать объект
    #34150183
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Leonidv
согласен.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Передать и распознать объект
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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