任何人都可以帮我找到检查JAVA中特定类型的方法的返回类型。我试过这个。但不幸的是它不起作用。请指导我。
Field[] fields = LanguageTranslation.class.getFields();
for(Field f : fields ){
System.out.println("Type is:"+f.getType()+"\t Name:"+f.getName());
if(f.getType().equals(JLabel))
{
System.out.println("Field is of type "+f.getType());
//other stuff
}
这里f.getType()返回一个对象,我想检查天气它是否是JLabel。如果是,我还有其他事情要做。我试过上面的代码,错误是JLabel cannot be resolved to a variable
我已经在课堂上声明了一个JLabel public JLabel testingText=null;
请帮帮我
答案 0 :(得分:0)
您可以使用instanceof
查找对象的类型。但是,当您使用反射时,首先需要获取要反映的对象内的字段值。例如:
LanguageTranslation translation = ...; // Your object
Field[] fields = LanguageTranslation.class.getFields();
for(Field field : fields ){
Object fieldValue = field.getValue(translation);
if(fieldValue instanceof JLabel) {
System.out.println("Field " + field.getName() + " of translation " + translation + " is a JLabel!");
}
}
答案 1 :(得分:0)
我从不建议您使用Reflection而是使用getter方法直接访问字段。
如果仍有除Reflection之外的其他选项,请尝试
f.getType().getName().equals(JLabel.class.getName())