A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伍仪华 黑马帝   /  2011-7-29 17:57  /  2111 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于java反射的问题? 我想提取 某个类的 几个 成员变量,这样写对不?代码:
import java.lang.*;
import java.util.*;
import java.lang.reflect.*;
import java.awt.*;
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.getName());
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}

class fm
{
int a=10;
int b=20;
Point p=new Point(1,2);

}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

1 个回复

正序浏览
注意一下加注释的地方[code=java]class Test_729
{
        public static void main(String[] args)
        {
                try
                {         //这里改动过
                        fm newfm = new fm();
                        Field[] fields=newfm.getClass().getFields();
                        for(int i=0;i<fields.length;i++)
                        //之前你这里是fields,应该是fields。fields那是数组,而不是数组里面指定的那个值
                        System.out.println(fields.getName());
                }
                catch(Exception e)
                {}
        }
}

class fm
{ //这里很重要 要加修饰符   之前的方法是访问不到的
        public int a=10;
        public int b=20;
        Point p=new Point(1,2);
}[/code]问题补充
修饰符的作用域
作用域    当前类 同一package 子孙类 其他package
public         √     √          √      √
protected   √     √          √      ×
默认         √     √          ×      ×
private        √     ×          ×      ×
[ 本帖最后由 李龙 于 2011-07-29  20:41 编辑 ]

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马