【问题标题】:What is the Class Of List<Foo> in Java?Java 中 List<Foo> 的类是什么?
【发布时间】:2010-12-19 05:26:20
【问题描述】:
Class c = List<Foo>.class

好像没用。

【问题讨论】:

  • 如果您详细说明您认为需要此构造来解决您的问题的上下文,那么我们也许能够提供如何解决它的建议。
  • 我认为解决方案是写“Class c = List.class”
  • (如果你有兴趣,它正在使用 Mockito)
  • ripper234: Class&lt;List&gt; c = List.class;

标签: java reflection interface


【解决方案1】:

没有。在 Java 中,具体的泛型类型没有精确的运行时类型表示。这是备受诟病的类型擦除的结果。实际上,这意味着List&lt;Foo&gt;List&lt;Bar&gt; 是相同的运行时类型;检查泛型操作是否合法发生在编译时,而不是运行时。一旦你进入字节码,它们都是List,所以说List&lt;X&gt;.class之类的东西在某种程度上是荒谬的。

更多详情请见this FAQ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    相关资源
    最近更新 更多