이것은 아마도 이전에 요청 받았지만 빠른 검색은 C#과 같은 질문만을 제기했습니다. See here.객체가 인터페이스를 구현하는지 테스트합니다.
기본적으로 주어진 개체가 주어진 인터페이스를 구현하는지 확인하는 것이 좋습니다.
일종의 솔루션을 찾았지만이 코드는 if 문이나 case 문에서 자주 사용하기에는 편안하지 않으며 Java에 기본 제공되는 솔루션이 없는지 궁금합니다.
public static Boolean implementsInterface(Object object, Class interf){
for (Class c : object.getClass().getInterfaces()) {
if (c.equals(interf)) {
return true;
}
}
return false;
}
편집 : 좋아, 귀하의 답변을 주셔서 감사합니다. 특히 Damien Pollet과 Noldorin에게 당신은 내 디자인을 다시 생각하게 만들었으므로 더 이상 인터페이스를 테스트하지 않았습니다.
를 호출하기 전에! null의 경우 확인 (또는 확인 자바가 C # "as"연산자와 유사한 것을 가지고 있다면 널 결과도)? 저는 Java가 아닌 C# 코더입니다. 그래서 저는이 같은 접근법이 모든 OO 언어에서 가능할 것이라고 생각하지만, 주로 여기에서 추측하고 있습니다. – Noldorin
예! 당신은 환영합니다 :) –
퍼포먼스에 신경 쓸 필요가없는 경우에만 Throwing Exception을 사용하는 것이 좋습니다. – Rafa