首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java泛型:为什么这样的输出是可能的?

Java泛型:为什么这样的输出是可能的?
EN

Stack Overflow用户
提问于 2017-01-06 19:06:29
回答 4查看 2.8K关注 0票数 51

我有这样一门课:

class MyClass<N extends Number> {
    N n = (N) (new Integer(8));
}

我想要得到这些输出:

System.out.println(new MyClass<Long>().n);
System.out.println(new MyClass<Long>().n.getClass());

第一条System.out.println()语句的

  1. 输出:

8第二条System.out.println()语句的

  • 输出:

java.lang.ClassCastException: java.lang.Integer (在模块:java.base中)不能强制转换为java.lang.Long (在模块:java.base中)

为什么我会得到第一个输出?不是也有演员阵容吗?为什么我在第二个输出中得到异常?

PS:我使用Java9;我用JShell尝试了一下,在两个输出上都得到了异常。然后我尝试了IntelliJ集成开发环境,得到了第一个输出,但在第二个输出中出现了异常。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41504343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档