我知道有可能通过名字得到一个类,使用
public String className = "someName";
public Class<?> c = Class.forName(className);
是否可以通过名称检索注释?我尝试了这个:
public String annotationName = "someName";
public Class<?> c = Class.forName(annotationName);
然后将c转换为类
我也试过
public String annotationName = "someName";
public Class<? extends Annotation> c = Class.forName(annotationName);
但当我这么做的时候,我得到了错误
Incompatible types.
Required: Class<? extends java.lang.annotation.Annotation>
Found: Class<Capture<?>>
使用asSubclass
。与编译器生成的类型转换不同,它只能处理编译时已知的类型,这将对运行时检索的类
对象执行检查。因为这是安全的,所以不会生成“未检查的强制类型”警告。请注意,存在一个类似的操作,cast
,用于强制转换类的实例。这些方法是在Java中添加的
String annotationName = "java.lang.Deprecated";
Class<? extends Annotation> c = Class.forName(annotationName).asSubclass(Annotation.class);
boolean depr = Thread.class.getMethod("stop").isAnnotationPresent(c);
System.out.println(depr);
我写了下面的代码: 但不幸的是,它给了我以下例外: servlet com.google.appengine.api.files中出现未捕获的异常。com.google.appengine.api.files.FileServiceImpl.translateException(FileServiceImple.java:597)中的FinalizationException位于com.goole
我有一个关于Spring注释的问题。在我的(学习)项目中,我定义了两个类,另一个类有两个属性,每种类型一个。为了生成一个错误,我在XML中定义了两个相同类类型的beans,并且在setter方法中使用了@Autowired注释。大概是这样的: 在主类中,我获取此 Bean 的应用程序上下文的实例,并打印覆盖 toString 方法的属性的内容,这是一个简单的测试。我已经读到Spring自动连线注释
我使用的是Spring Boot1.3,我有下面的配置类: 当我试图按名称注入下面的bean之一时,它抛出:没有定义[java.text.SimpleDateFormat]类型的合格bean:预期的是单个匹配bean,但找到了2:dateAndTimeFormater,DateFormater。 如有任何建议,将不胜感激?
问题内容: 自从我上次使用1.4.X版本以来,我一直在尝试更新有关Java的知识…我正在尝试使用1.6.0,尤其是Java Persistence API(2.0)。 我设法创建了一个实体类。因为我能够存储和检索数据,所以它正在工作。 但是我无所事事,当我决定用表的列名填充JList时并没有成功… 这是一个简单的类,看起来像: 有没有办法检索列名? 我找到了这个帖子。似乎是一个有效的解决方案,
我刚刚开始学习Spring,我面临以下问题。有人能指出我可能做错了什么吗? 线程“main”组织中出现异常。springframework。豆。工厂BeanDefinitionStoreException:IOException解析来自类路径资源[org/pus/learn/src/main/resources/applicationBean.XML]的XML文档;嵌套的例外是java。伊奥。Fi
问题内容: 是否可以像使用JUnit一样(使用getName()或rules)检索当前正在运行的测试名称? PS我不想使用基于堆栈跟踪的一些自写工具。 问题答案: 根据位于http://testng.org/doc/documentation- main.html的 TestNG文档, 您可以实现可能有助于您解决问题的侦听器。 查看5.16节的TestNG侦听器,尤其是IInvokedMethod