Java泛型.class

分隔符

我们有一个注释@Accepts:

@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*/
}

我向此枚举添加了一个名为“值”的新项目,它可以接受String或PropertyResolver。PropertyResolver是一个定义如下的接口:

public interface PropertyResolver<T> {
    public T getValue(TagContext tagContext);
}

我不知道如何在PropertyResolver上执行.class以传递给@Accepts。有可能这样做吗?

谢谢。

贝什·古隆(Bhesh Gurung)

您将不得不做PropertyResolver.class只有一个Class实例可以代表该类(原始版本)。

没有PropertyResolver<T>.class或不PropertyResolver<Integer>.class存在这样的东西

始终要记住,在Java中,泛型仅是编译时功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章