如何检查返回类型的方法是JLabel

时间:2014-08-04 11:06:34

标签: java swing jlabel

任何人都可以帮我找到检查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;请帮帮我

2 个答案:

答案 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())

Read more...