BeanUtils와 유사한 리플렉션을 사용하여 객체의 get 접두어가 붙지 않는 속성을 얻을 수있는 유틸리티가 있습니까? 예 : "hashCode"를 지정하면 object.hashCode() 값을 가져 오려고합니다.Java Reflection Utility
감사합니다.
BeanUtils와 유사한 리플렉션을 사용하여 객체의 get 접두어가 붙지 않는 속성을 얻을 수있는 유틸리티가 있습니까? 예 : "hashCode"를 지정하면 object.hashCode() 값을 가져 오려고합니다.Java Reflection Utility
감사합니다.
Object
마다 hashCode()
으로 전화 할 수 있습니다. 당신은 이것을 반영 할 필요가 없습니다.
그렇지 않으면 java.lang.Class
및 그 방법은 getMethod(..)
이며 java.lang.reflect.Method
을 반환 할 수 있습니다.
자바 리플렉션 API를 사용하면 전용 변수를 포함하여 클래스의 지정된 인스턴스에있는 모든 속성에 액세스 할 수 있습니다.
리플렉션은 개인 생성자로 개체를 인스턴스화하는 등 많은 작업을 수행 할 수있는 강력한 도구입니다.
다음은 빠른 Google 검색 결과가 반영된 점잖은 튜토리얼입니다.
클래스 필드 정보 찾기 : 그것은 데이터 필드는 클래스에 정의 된 찾을 수 있습니다. 이렇게하려면 다음 코드를 사용할 수 있습니다
import java.lang.reflect.*;
public class field1 {
private double d;
public static final int i = 37;
String s = "testing";
public static void main(String args[])
{
try {
Class cls = Class.forName("field1");
Field fieldlist[]
= cls.getDeclaredFields();
for (int i
= 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
System.out.println("name
= " + fld.getName());
System.out.println("decl class = " +
fld.getDeclaringClass());
System.out.println("type
= " + fld.getType());
int mod = fld.getModifiers();
System.out.println("modifiers = " +
Modifier.toString(mod));
System.out.println("-----");
}
}
catch (Throwable e) {
System.err.println(e);
}
}
}
소스 : http://java.sun.com/developer/technicalArticles/ALT/Reflection/
org.apache.commons.beanutils.MethodUtils 내가 무엇을 찾고 있었다이었다.
여전히'hasCode()'를 호출하는 것은 모든 객체에서 가능합니다. 이 방법에만 해당되는 경우 직접 호출하십시오. – Bozho
JSF ... 또는 size() 등에서 hashCode를 호출 할 수 없습니다. –
BeanUtils와 유사한 리플렉션을 사용하여 개체의 get 접두사가없는 속성을 가져 오는 유틸리티가 있습니까?
표준 리플렉션 API가 있지만 문제가되는 것은 무엇입니까? 콩 규칙은 get
또는 is
(및 다른 특정 특성)으로 시작하는 메소드가 속성이라는 것입니다. 이 규칙이 없으면 클래스의 메소드 중 어느 것이 속성 getter (또는 setter)인지 완전히 다른 목적을 가진 메소드인지 알 수 없습니다. 예를 들어, boolean
속성에 대한 게터라고 오인 된 믿음으로 File.delete()
에 전화하고 싶지 않을 것입니다!
Sun 반영 자습서 : http://java.sun.com/docs/books/tutorial/reflect/ – BalusC
@downvoter -이 대답이 유용하지 않은 이유를 설명해 주시겠습니까? – Bozho