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.