使用Reflection API时无法找到符号字段

 zf19920222 发布于 2023-02-13 10:50

我试图学习如何使用反射打印出类的字段,方法和构造函数.这是有问题的代码:

static void displayMethodInfo(Object obj){
        Class c = obj.getClass();
        System.out.println(c + "{");
        int mods;
        Field fields[] = c.getDeclaredFields();
        for(Fields f : fields){
            if(!Modifier.isPrivate(f.getModifiers()))
                System.out.println("\t" + f);
        }
        Constructor [] constructors = c.getConstructors();
        for(Constructor con : constructors){
            System.out.println("\t" + con);
        }
        Method methods[] = c.getDeclaredMethods();
        for(Method m : methods){
            if(!Modifier.isPrivate(m.getModifiers()))
                System.out.println("\t" + m);
        }
        System.out.println("}");
    }

我得到的字段错误与我为构造函数和方法获得的错误相同:

MethodInfoTest.java:11: cannot find symbol
symbol  : class Field
location: class MethodInfoTest
                Field fields[] = c.getDeclaredFields();
                ^
MethodInfoTest.java:12: cannot find symbol
symbol  : class Fields
location: class MethodInfoTest
                for(Fields f : fields){

我相信我使用的是正确的API,我使用的是import java.lang.*; 我认为我们需要使用Field,Method和Constructor.关于我们如何使用这些类型,我有什么错误吗?

1 个回答
  • 使用星型导入不会导入子包.Field,, MethodConstructorjava.lang.reflect的成员.

    2023-02-13 10:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有