Jar 파일의 클래스를 통해 간섭하고 추상적이지 않은 클래스를 찾고 싶습니다. 클래스를 인스턴스화하고 InstantiationException을 트래핑하여이 문제를 해결할 수 있지만 일부 클래스가 시작되면 성능이 저하됩니다. Class.java 문서에서 isAbstract ()와 같은 것을 찾을 수 없습니다.
Jar 파일의 클래스를 통해 간섭하고 추상적이지 않은 클래스를 찾고 싶습니다. 클래스를 인스턴스화하고 InstantiationException을 트래핑하여이 문제를 해결할 수 있지만 일부 클래스가 시작되면 성능이 저하됩니다. Class.java 문서에서 isAbstract ()와 같은 것을 찾을 수 없습니다.
답변:
클래스 객체에서 getModifiers ()를 호출하면 수정 자 중 하나로 추상이 표시됩니다.
이 링크 가 도움이 될 것입니다.
Modifier.isAbstract( someClass.getModifiers() );
또한:
http://java.sun.com/javase/6/docs/api/java/lang/reflect/Modifier.html
http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getModifiers ()
Modifier.isAbstract( someClass.class.getModifiers() );
아마 당신이 그것을 바꾸고 싶을 것 같아요
someClass.getModifiers()
또는 SomeClass.class.getModifiers()
어디Class<SomeClass> someClass = SomeClass.class;
public static boolean isInstantiable(Class<?> clz) {
if(clz.isPrimitive() || Modifier.isAbstract( clz.getModifiers()) ||clz.isInterface() || clz.isArray() || String.class.getName().equals(clz.getName()) || Integer.class.getName().equals(clz.getName())){
return false;
}
return true;
}