所以我需要一种方法来检查字段上是否存在注释,如果注释确实存在,则将该字段转换为其实际类型,以便我可以访问其方法。这可能没有多大意义,因此在代码中这大致是我希望能够做到的。
有一个看起来像这样的类:
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来看,它似乎并不明显。