有没有办法从Field转换为Object?

时间:2015-08-08 16:07:41

标签: java reflection

所以我需要一种方法来检查字段上是否存在注释,如果注释确实存在,则将该字段转换为其实际类型,以便我可以访问其方法。这可能没有多大意义,因此在代码中这大致是我希望能够做到的。

有一个看起来像这样的类:

class A 
{
  @CustomAnnotation
  public ServerA server = new ServerA();

  ...
}

在另一个课程中,我想要通过Class的A字段并检查是否存在注释,然后执行某些操作

class Z 
{
  public void deleteFilesIfAnnotationExists()
  {
    Field[] fields = class.forName(A.class);
    for(Field field : fields)
    {
      if((field.getAnnotation(CustomAnnotation.class))!=null)
      {

        //the following code is wishful thinking
        if(field instanceof ServerA)
        {
          ServerA server = (ServerA) field; //what i really need to be able to do
          server.deleteFilesFromServerRootDir();
        }
      }
    }
  }
}

无论如何都要做类似这样的事情,还是只是一厢情愿?从Field的javadoc来看,它似乎并不明显。

0 个答案:

没有答案