템플릿 매개 변수가있는 메서드가 있습니다.
public CustomClass getData(Class<? extends InterfaceA> item) {
}
item
예상되는 클래스를 고수하는 내부 익명 클래스가 될 수있는로 호출 할 수있는 한 가지 경우로 끝났지 만이 개체가 내 메서드 내에있을 때 어떻게 알 수 있습니까?
내가 작동하는 일반적인 클래스 가 if(item.equals(ConcreteA.class))
어디에서 ConcreteA
작동하면 실패합니다.
또한 클래스 이름을 사용하는 경우 다음과 같은 것을 사용해야합니다.
item.getName().equals(“com.a.b.Utils$1”);
이 경우 인스턴스를 어떻게 확인할 수 있습니까?
유형이 호환되는지 확인해야합니다. 즉, InterfaceA
의 상위 유형인지 확인해야합니다 item
.
boolean isValidType = InterfaceA.class.isAssignableFrom(item)
API 문서 : https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isAssignableFrom(java.lang.Class)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다