Java 使用反射API时找不到符号字段

Java 使用反射API时找不到符号字段,java,Java,我试图学习如何使用反射打印出类的字段、方法和构造函数。以下是相关代码: static void displayMethodInfo(Object obj){ Class c = obj.getClass(); System.out.println(c + "{"); int mods; Field fields[] = c.getDeclaredFields(); for(Fields f : fields){

我试图学习如何使用反射打印出类的字段、方法和构造函数。以下是相关代码:

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.*;我相信它包含了我们需要使用的字段、方法和构造函数。关于如何使用这些类型,是否有一些我被误解的信息?

您应该使用:

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
你应使用:

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

使用星型导入不会导入子包<代码>字段、
方法
构造函数
java.lang.reflect的成员

使用星型导入不会导入子包<代码>字段、
方法
构造函数
java.lang.reflect的成员。请使用以下导入语句

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.Method;
另外,我认为
字段
不是反射API中的类


我的建议是尝试使用IDE,它会建议可能的编译问题

使用以下导入语句

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.Method;
另外,我认为
字段
不是反射API中的类

我的建议是尝试使用IDE,它会建议可能的编译问题

您需要:

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
考虑使用IDE,例如Eclipse。

您需要:

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

考虑使用IDE,例如Eclipse。

将来使用合适的IDE,然后按一些调用“组织导入”的关键字,它将通过导入为您修复一切。

将来使用合适的IDE,然后按一些调用“组织导入”的关键字它将通过导入为您修复所有问题。

您的代码中也有一个输入错误,位于第
行(字段f:Fields)
。它应该是
字段
,而不是
字段
。您的代码中还有一个输入错误,位于(字段f:Fields)的
行。应该是
字段
,而不是
字段
。谢谢,我真的在找这个:谢谢你,我真的在找这个3.