当前位置: 首页 > wzjs >正文

网站建设安全性指标网站seo推广

网站建设安全性指标,网站seo推广,地方门户网站如何宣传,高端网站开发怎么选Java中,泛型用于编译阶段限制集合中元素的类型,或者限制类中某个属性的类型,编译过程中发生类型擦除,最终还是Object类型。 1. 集合中的泛型 集合默认可以存储任何类型的元素,即Object类型,当使用一个集合…

Java中,泛型用于编译阶段限制集合中元素的类型,或者限制类中某个属性的类型,编译过程中发生类型擦除,最终还是Object类型。

1. 集合中的泛型

集合默认可以存储任何类型的元素,即Object类型,当使用一个集合存储String类型元素时

不使用泛型
        List list = new ArrayList();list.add("a");// 当使用集合中的元素时,需要手动进行类型转换String str0 = (String) list.get(0);// 而且无法保证集合的正确性list.add(123);// 运行时报错类型转换异常 ClassCastExceptionString str1 = (String) list.get(1);
使用泛型
        List<String> list = new ArrayList<>();list.add("a");// 当使用集合中的元素时,通过泛型可以确定,集合中都是指定类型,故不需要手动进行类型转换String str0 = list.get(0);// list.add(123); // 编译不通过

2. 类中泛型

类中使用泛型与集合中同理,使用泛型可以避免使用时的手动强制转换,并保证数据的合法性。

不使用泛型
    public static void main(String[] args) {Box box = new Box("abc");String value = (String) box.getValue();box.setValue(123);// 运行时报错类型转换异常 ClassCastExceptionvalue = (String) box.getValue(); }static class Box {private Object value;public Box(Object value) {this.value = value;}public Object getValue() {return value;}public void setValue(Object value) {this.value = value;}}
3. 使用泛型
    public static void main(String[] args) {Box<String> box = new Box<>("abc");String value = box.getValue();// box.setValue(123); 编译不通过}static class Box<T> {private T value;public Box(T value) {this.value = value;}public T getValue() {return value;}public void setValue(T value) {this.value = value;}}

3. ?和 extends 和 super

? 表示不确定的类型,通常配置 extends 或 super,限制泛型的范围

    public static void main(String[] args) {// <? extends Animal>List<? extends Animal> extendsList = new ArrayList<>();// List<? extends Animal> 只允许读取,因为集合中的元素肯定是Animal或其子类Animal animal = extendsList.get(0); // List<? extends Animal> 不允许新增,因为只知道集合中的元素肯定是Animal或其子类,但无法确定类型的下限// extendsList.add(new Cat()); // <? super Animal>List<? super Animal> supperList = new ArrayList<>();// List<? super Animal> 允许新增Animal的子类,因为集合中的元素肯定是Animal或其父类supperList.add(new Cat());// List<? super Animal> 不允许读取为Animal,因为集合中的元素肯定是Animal或其父类类,但无法确定类型的上限// Animal animal = supperList.get(0); // 但是可以读取为Object,因为Object是所有类的父类Object object = supperList.get(0); // 通配符?List<?> list = new ArrayList<>();// List<?> 相当于 List<? extends Object>,只允许读取为Object,不允许新增list.get(0);}static class Animal {}static class Cat extends Animal {}static class Dog extends Animal {}

参考

https://blog.csdn.net/anlian523/article/details/1008655385538

http://www.dtcms.com/wzjs/201327.html

相关文章:

  • 抖音代运营收费价格表北京百度推广优化公司
  • 无锡做网站优化多少钱百度实名认证
  • 网站优化公司信息推荐免费b站网站推广
  • pyhton可以做网站吗手机关键词seo排名优化
  • 巴中住房和城乡建设局网站网站联盟
  • 做预售的网站优化网站关键词排名软件
  • 旅游网站css模板艺考培训
  • 网站审批需要什么手续杭州网络优化公司排名
  • 佛山网站建设公司价格多少广东seo推广哪里好
  • nas做网站需要备案吗株洲seo优化首选
  • 华大基因 网站建设公司排名首页服务热线
  • 关键词优化一般收费价格新乡seo网络推广费用
  • 重庆手机网站制作价格外链网站推荐
  • 无毒手机网站百度公司排名
  • 建网站空间的详细说明做网站一般需要多少钱
  • 盐城外贸网站建设seo优化多少钱
  • dw可以做移动端网站平台推广营销
  • 蓝色大气网站欣赏竞价广告
  • 17做网店这个网站好不好百度网站提交
  • 超级门户博客版wordpress主题seo网站优化案例
  • 微店网站开发产品推广营销
  • 网站做防劫持企业网站大全
  • 淘客网站+wordpressseoul是什么国家
  • 网站文章来源seo苏州关键词搜索排名
  • 怎么做网站卖空间seo咨询茂名
  • 上海市发布网站优化关键词排名
  • 用dw做的企业网站搜索引擎优化的流程
  • 服务器试用网站如何进行seo
  • 一个阿里云怎么做两个网站吗搜索引擎优化的简写是
  • 网上虚拟银行注册网站公司网络营销推广