首页 / JAVA / java – 隐式类型和通配符
java – 隐式类型和通配符
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 隐式类型和通配符,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1227字,纯文字阅读大概需要2分钟。
内容图文
![java – 隐式类型和通配符](/upload/InfoBanner/zyjiaocheng/778/0fd627caffb3433db91f28cc509ef9bd.jpg)
在this topic我遇到了牵连类型.
问题1. Java中隐式类型的强有力捍卫或非正式概念是什么?我可以手动定义隐式类型吗?所有隐式类型是否相同都是真的吗?什么是编译器的隐式类型?
以下代码示例:
List<? extends Number> nums= new ArrayList<Integer>();
nums.add(3);//error
我知道我们可以分配给nums引用ArrayList< Double>.
问题2.在这方面? extends Number是隐式类型,由CAP#1定义.编译器是否确实知道只有null是这种隐式类型的实例?
解决方法:
适当的术语是捕获通配符.编译器在内部将泛型类型的通配符实例转换为通配符的捕获.捕获表示类型参数的特定未知类型.当然,这种特殊的未知类型是通配符所表示的类型族的成员.
请注意,由于可以通过通配符实例化表示许多不同类型,我们说通配符表示参数化类型的不同实例化的族.
Can i define implicit type manually?
匿名类型变量?不.那是由内部编译器创建的.您可以这么说,您正在指示编译器创建一个匿名类型参数,该参数将替换使用的通配符.
Is it true that all of implicit type is the same?
不.如果您使用say List<? extends Number>两次不同的类型,它们都会生成不同的匿名类型,即CAP#1扩展Number和CAP#2扩展Number.
What’s the implicit type for compiler?
我不明白这些问题.
Is it true that compiler does know that only
null
is instance of this implicit type?
添加null的原因在于,null是任何类型引用的有效值.因此,无论通配符表示的实际类型参数如何,都会很乐意接受值null.
内容总结
以上是互联网集市为您收集整理的java – 隐式类型和通配符全部内容,希望文章能够帮你解决java – 隐式类型和通配符所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。