相关疑难解决方法(0)

Java Enum定义

我以为我很了解Java泛型,但后来我在java.lang.Enum中遇到了以下内容:

class Enum<E extends Enum<E>>
Run Code Online (Sandbox Code Playgroud)

有人可以解释如何解释这个类型参数?用于提供可以使用类似类型参数的其他示例的加分点.

java generics enums crtp

146
推荐指数
3
解决办法
2万
查看次数

为什么使用原始类型变量会影响签名而不引用类型参数?

在研究另一个问题时,我碰到了1.8.0_112 Sun-Oracle编译器的这种有趣行为(我没有和其他人一起测试过):

import java.util.List;

interface Alpha<T> {
   List<Integer> intList();
}

interface Beta {
   List<Integer> intList();
}

class Main {

   public static void main(String[] args) {

      Alpha rawAlpha = null;
      Alpha<Character> charAlpha = null;
      Alpha<?> qmAlpha = null;
      Beta beta = null;

      for (Integer i : charAlpha.intList()) {}
      for (Integer i : qmAlpha.intList()) {}
      for (Integer i : beta.intList()) {}
      for (Integer i : rawAlpha.intList()) {}
   }
}
Run Code Online (Sandbox Code Playgroud)

编译器在最后一个for循环中失败:

error: incompatible types: Object cannot be converted to …
Run Code Online (Sandbox Code Playgroud)

java generics type-erasure erasure

11
推荐指数
1
解决办法
161
查看次数

标签 统计

generics ×2

java ×2

crtp ×1

enums ×1

erasure ×1

type-erasure ×1