是否可以将一个类表示为一个字段?

时间:2017-05-16 08:32:22

标签: java reflection annotations

我需要在类中检索注释。 想象一下:

<script type="text/javascript">

    function DisableMenu()
    {
        if(document.getElementById("status").value=="1" || document.getElementById("status").value == "2")
        {
            document.getElementById("progress").disabled = "true";
        }
        else
        {
            document.getElementById("progress").disabled = "false";
        }                       
    }                   
</script>

我需要做的是从注释中的类初始化类Table中的变量。 问题是,我如何将Table类表示为一个字段,以便从注释中检索一个值,如下所示:

@MyAnnotation(MyClass.class)
public Table myTable;

是否可以以某种方式将Table类转换为Field类?

2 个答案:

答案 0 :(得分:1)

如果您只想将myTable字段作为Field对象进行访问,请写下:

Field tableField = Enclosing.class.getDeclaredField("myTable");

其中Enclosing是声明myTable字段的类的名称。

答案 1 :(得分:1)

  

Field tableField =? //在这里我应该以某种方式将'this'强制转换为Field

注释不依赖于driver.findElement(By.id("divImgAnnualAllowanceType")).getText(); ,即类的实例,但取决于类本身。

  

问题是,如何将Table类按顺序表示为字段   从注释中检索值,如下所示:

通过反思。

假设您有班级:

"this"

您可以通过以下方式检索字段:

public class MyObject{
  @MyAnnotation(MyClass.class)
  public Table myTable;
}

然后使用该字段检索与注释关联的值:

Field tableField = MyObject.class.getDeclaredField("myTable");