是否有一个实用程序来获取一个不使用类似于BeanUtils的反射从对象获取前缀的属性?例如如果我指定“hashCode”并且我想获取object.hashCode()值。
感谢。
答案 0 :(得分:3)
您可以在每个hashCode()
上致电Object
。你不需要反思。
否则,您可以使用标准反射类 - java.lang.Class
及其返回getMethod(..)
的方法java.lang.reflect.Method
。
答案 1 :(得分:1)
java reflection API允许您访问类的给定实例上的任何属性,包括私有变量。
Reflection是一个强大的工具,允许您执行许多操作,包括使用私有构造函数实例化对象。
这是一个体面的反思教程,快速谷歌搜索出现了。
答案 2 :(得分:1)
org.apache.commons.beanutils.MethodUtils就是我想要的。
答案 3 :(得分:0)
查找类字段:可以找出在类中定义的数据字段。为此,可以使用以下代码:
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/
答案 4 :(得分:0)
是否有一个实用程序来获取一个没有前缀的属性,使用类似于BeanUtils的反射从对象获取?
有标准的反射API,但您要求的是有问题的。 Bean约定是以get
或is
(以及某些其他特征)开头的方法是属性。如果没有这种约定,就不可能知道类的哪个方法是属性getter(或setter),哪些是具有完全不同目的的方法。例如,您不希望以错误的信念来调用File.delete()
,因为它是某个boolean
属性的吸气剂!