나는 서브 클래스가 SubclassA
, SubclassB
및 SubclassA
인 서브 클래스가 SubSubClass
인 추상 클래스 Entity
을 보유하고 있습니다. Java에서 객체를 동적으로 전송 하시겠습니까?
class SomeClass{
void doSomething(Entity e){..}
void doSomething(SubclassA e){..}
void doSomething(SubclassB e){..}
void doSomething(SubSubClass e){..}
}
가 나는
List<Entity> list
있습니다
은 또한 다음과 같습니다 클래스 SomeClass
의 객체 someObject
있습니다. 이 목록의 모든 항목은 someObject.doSomething
으로 전달됩니다.
for(Entity entity : list){
someObject.doSomething(entity);
}
점은 참조 형은 항상 Entity
때문에 doSomething(Entity e)
항상 상관없이 현재 Entity
의 실제의 형태가 무엇인지, 호출되지 않습니다이다. 이 문제를 해결하려면 캐스팅해야합니다 (예 : someObject.doSomething((SubclassB)entity)
).
instanceof
작업 없이는 어떤 구체적인 유형이든 개체를 동적으로 캐스팅 할 수 있는지 궁금합니다.
이렇게 할 방법이 없다면 내 상황을 어떻게 처리하겠습니까?