【问题标题】:Java "Interface" classJava“接口”类
【发布时间】:2016-05-24 21:31:09
【问题描述】:

在 Java 中,有一个 Class 类,可以用来表示其他类,而无需实例化它们。例如:

Class[] foo = { ArrayList.class, String.class, Character.class, Integer.class, MyCustomClass.class };
ArrayList bar = foo[0].newInstance();

将是有效的代码。例如,我还可以遍历 Objects 的数组,并对它们进行 instanceof 检查,以检查 foo 数组中的相应类,这具有潜在的应用。

interfaces 的 Java 中是否存在这样的类?是否有一些类我可以做类似这样的事情:

Interface[] foo = {Comparable, List<String>, MyCustomInterface}

从 Java 8 开始,接口现在可以有静态方法,这种行为可能是有用的,但如果是不好的做法。存在吗?

【问题讨论】:

标签: java class interface java-8


【解决方案1】:

接口只是Class.isInterface() 返回true 的类。所以:

Class<?>[] foo = {Comparable.class, List.class, MyCustomInterface.class};

请注意,没有通用类实例,例如List&lt;String&gt;:这只是原始的List.class

【讨论】:

  • 我想知道你是否可以声明一个扩展 Class 的接口类来获取 OP 的行为? (不是说这是个好主意,只是好奇是否可能!)
  • @DanielWiddis 鉴于 Classfinal,不,这是不可能的。
猜你喜欢
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多