文章详情页
关于java泛型类的小疑惑
浏览:73日期:2023-12-08 18:42:36
问题描述
有一个类,定义为class Gift<T>{...},当我新建一个Gift对象时,如 Gift<Phone> myGift = new Gift<Phone>myGift对象究竟是什么类型的呢,是Gift,Phone,还是Object?在博客读到一段话说,在实例化对象时,不指定泛型的话,默认为:Object, 但是不指定泛型的话,默认不是应该为GIft么?
问题解答
回答1:<T> 这只是一个泛型的声明 Gift<T> 说明你在Gift里面存在T这个泛型的使用,java遵循先声明后调用原则,故此需要在使用T之前现声明T的具体类型与myGift的类型无关,不论T的类型是什么myGift都是Gift的一个类的对象.望采纳!
回答2:我个人的理解是,这个类型的限制,是对传入参数的限制,而不是类本身的
回答3:Gift呀,不指定泛型,默认为:Object。那是针对T来说的吧。Java的泛型在编译阶段需要确定类型,不是真真的动态。所以没声明T类型就默认了T为object
标签:
java
相关文章:
1. 前端 - css3 3d效果问题2. javascript - vue引入样式的问题3. 微信开放平台 - ios APP能不能打开微信然后通过微信跳转到指定的URL?4. javascript - nodejs调用qiniu的第三方资源抓取,返回401 bad token,为什么5. php - 微信开发验证服务器有效性6. javascript - vue+iview upload传参失败 跨域问题后台已经解决 仍然报403,这是怎么回事啊?7. Mac环境下QT编译MySQL驱动屡次失败?如何?8. javascript - 怎么实现让 div 里面的 img 元素 中心居中, 如下示例图9. html5 - 使用angular中,图片上传功能中选择多张图片是怎么实现的?有什么好的思路吗?10. javascript - 移动端一个小效果
排行榜
