Java泛型类
我们有一个注解@Accepts:Java泛型类,java,generics,Java,Generics,我们有一个注解@Accepts: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Accepts { Class[] value(); } 它需要一个类列表。这些之后用于在DSL中验证字段是否传递了列出为可接受的类的实例 正在使用的此注释的一些示例: public enum PropertyName { @Accepts({Integer.class}) xCoor
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Accepts {
Class[] value();
}
它需要一个类列表。这些之后用于在DSL中验证字段是否传递了列出为可接受的类的实例
正在使用的此注释的一些示例:
public enum PropertyName {
@Accepts({Integer.class})
xCoordinate,
@Accepts({Integer.class})
yCoordinate,
@Accepts({Boolean.class})
showPermission
@Accepts({String.class, FieldScript.class, List.class})
onClick
/* And So On*/
}
我正在向该枚举添加一个名为“value”的新项,它可以接受字符串或PropertyResolver。PropertyResolver是一个定义如下的接口:
public interface PropertyResolver<T> {
public T getValue(TagContext tagContext);
}
公共接口属性Resolver{
公共T getValue(TagContext-TagContext);
}
我不知道如何对PropertyResolver执行.class来传递给@Accepts。有可能吗
谢谢。您必须执行
属性Resolver.class
。只有一个Class
实例表示类(原始版本)
不存在诸如PropertyResolver.class
或PropertyResolver.class
之类的东西
请始终记住,在Java中,泛型是编译时唯一的功能。您必须执行
PropertyResolver.class
。只有一个Class
实例表示类(原始版本)
不存在诸如PropertyResolver.class
或PropertyResolver.class
之类的东西
请始终记住,在Java中,泛型是编译时唯一的功能。@JakubJirutka Wait,真的吗?什么时候泛型不被擦除?嗯,我发现动态类型被擦除了,而静态类型没有。这就是你说的吗?@JakubJirutka啊,这很有趣。谢谢你的信息!今天学到了新东西。@JakubJirutka等等,真的吗?什么时候泛型不被擦除?嗯,我发现动态类型被擦除了,而静态类型没有。这就是你说的吗?@JakubJirutka啊,这很有趣。谢谢你的信息!今天学到了一些新东西。