Tag: 类型注释

如何在Java中使用自定义类型注释

Java 8具有名为Type annotations( JSR 308 )的function。 我想将它用于简单的Object to Object映射器框架。 我想像这样定义注释@ExpectedType @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) @Retention(RetentionPolicy.RUNTIME) public @interface ExpectedType { public Class value(); } 然后在我的代码中使用它,如下所示: public class SomeServiceImpl() { public @ExpectedType(ObjectA_DTO.class) IObjectA doSomething(@ExpectedType(ObjectA_Entity.class) IObjectA obj) { return (ObjectA_Entity) obj; // it’s correct } } IObjectA是由ObjectA_DTO和ObjectA_Entity类实现的接口。 我想用这种方式服务: // it’s correct assert someService.doSomething(new ObjectA_DTO()).getClass() == ObjectA_DTO.class; 我想更改SomeServiceImpl方法的调用以使用Object mapper。 它可以通过使用JSR 269或AOP生成的代码来实现。 […]

是否可以在运行时访问Java 8类型信息?

假设我在一个使用Java 8类型注释的类中有以下成员: private List emailAddresses; 是否可以使用reflection读取在运行时使用的String类型上给出的@Email注释? 如果是这样,怎么办呢? 更新:这是注释类型的定义: @Target(value=ElementType.TYPE_USE) @Retention(RetentionPolicy.RUNTIME) public @interface Email {}