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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我知道用getField,但是这一次只能取出一个呀,请大神指教。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

2 个回复

正序浏览
import java.util.*;
import java.lang.reflect.*;
public class ReflectionTest{
        
        public static void main(String[] args){
               
                    String name;
                        
                        Scanner in = new Scanner(System.in);
                        System.out.println("请输入类名(例如:java.util.Date)");
                        name = in.next();
                        
                        
                try{
            
                        Class cl = Class.forName(name);
                                printFields(cl);
                                System.out.println();
                           
                        }catch(ClassNotFoundException cn){
                                
                                cn.printStackTrace();
                                
                                }
                        System.exit(0);        
               
                }

public static void printFields(Class cl){
                        
                        Field[] fields = cl.getFields();
                        
                        for(Field f:fields){
                                
                                Class type = f.getType();//类型名
                                String name = f.getName();//成员变量名
                                System.out.println(" ");
                                String modifiers = Modifier.toString(f.getModifiers());//修饰符
                          System.out.print(modifiers+" "+type+" "+name+";");
                          

                                }
}

}

回复 使用道具 举报
  1. package day03;

  2. import java.lang.reflect.Field;

  3. public class Test {
  4.         private int x;
  5.         private String str;
  6.         public float y;
  7.         public static void main(String[] args) throws Exception{
  8.                 Test test = new Test();
  9.                 //获取 一个字节码对象
  10.                 Class cla = Class.forName("day03.Test");
  11.                 Field[] fields = cla.getDeclaredFields();
  12.                 for(Field field : fields){
  13.                         field.setAccessible(true);
  14.                         System.out.println(field.get(test));
  15.                 }
  16.                
  17.         }
  18. }
复制代码
我比较喜欢getDeclaredFields().这个方法,这个方法不管你什么权限都能拿到,

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

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