标题: 反射的问题 [打印本页] 作者: 霍永刚 时间: 2012-9-21 23:19 标题: 反射的问题 我想用反射提取成员变量这样写对吗?
class test
{
public static void main(String[] args)
{
try
{
Class newfm=Class.forName("fm");
Field fields[]=newfm.getFields();
for(int i=0;i<fields.length;i++)
System.out.println(fields[i].getName());
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
class fm
{
public int a=10;
public int b=20;
public Point p=new Point(1,2);
}
反射的例子给我举例几个越详细越好,在此表示感谢!作者: 冯祖焱 时间: 2012-9-22 12:17
上面提取成员变量的写法是对的,注意:getFields()只能获取public字段,百度关键字“java 反射”即可找到更多资料作者: 覃宏海 时间: 2012-9-22 12:58 本帖最后由 覃宏海 于 2012-9-22 12:59 编辑
这是我的代码
public class Text {
/**
* @param args
*/
public static void main(String[] args)
{
try
{
Class newfm=fm.class;-------------------------------------------->你是要通过 fm 来获取字节码的!所以直接.class 因为已经知道了class的name,所以就不用getName了
java.lang.reflect.Field[] fields=newfm.getFields();------------------->可以直接写成一步 Field[] fields = fm.class.getFields();
for(java.lang.reflect.Field field : fields)
System.out.println(field.getName());
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
class fm
{
public int a=10;
public int b=20;
public Point p=new Point(1,2);