博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Integer问题和通配符问题
阅读量:4686 次
发布时间:2019-06-09

本文共 1824 字,大约阅读时间需要 6 分钟。

一、关于Integer

  • 首先补充下昨天的
  • intValue()方法 :以 int 类型返回该 Integer 的值。

Integer方法,在其内部类IntegerCache中缓存了-128到127之间的整数,所有如果是这期间的数,系统不会重新new一个Integer,也就是说两个Integer引用变量所指向的对象是一样的。

如果超过这个数值,那么进行对比返回的就是False.

二、关于通配泛型放的位置

通配符总共有三种类型:1、?:无界通配符  2、? extends 父类 :上界通配符  3、? super 子类 :下界通配符

今早研究了一下,发现了一些问题:

举个例子,父类Animals  子类有Dog和Cat ,Dog有子类SmallDog

在方法外头设置<T>的概念

1 public static 
void print(T t) { //那么,没有这样的类型来提供使用,怎么办呢?2 //于是用
来声明一种“泛型”,然后参数就可以用T这种泛型来定义,否则没有参数类型没法定义参数3 System.out.println(t);4 }

在方法参数里头设置

1 public  static void eat(List
animals){2 Dog dog = (Dog) animals.get(1);3 dog.shout();4 }

着重分析一下上界通配符和下界通配符,上界通配符可以放在方法体的外头或者直接放在方法的参数,例如

1 public  static void eat(List
animals){2 for(Animals an:animals)3 an.shout();4 }
1  public  static 
void eat(List
animals){2 for(Animals an:animals)3 an.shout(); 4 }

而下界通配符,因为父类不能强转为子类,所有它是混着用的,不能直接<E super 子类>,可以这样<E extends 父类<? super E>>

1 public  static void eat(List
animals){2 Dog dog = (Dog) animals.get(1);3 dog.shout();4 }

上界通配符:

  • ? extends E 名为:向上限定,?代表E及其子类,也可以称之为:泛型固定上边界;
  • 当创建集合对象,List<? extends Person> list = new ArrayList<Person>();不能做添加操作,以及其他相关的操作
  •   原因:是在你做添加操作的时候,你只知道,你添加数据的上限。但是你无法确定你要添加数据的下限。
  • 当你做添加操作的时候,确定你具体添加的是什么类型,子类重写的方法,也必须是该类型的或者该类型的子类。
  • 但是,如果你添加的类型,和你的对象(例如:new ArrayList<Person>())中的类型不匹配,在实际操作中是有问题的。
  • 故而为了避免这种问题(类型转换异常),干脆不让你操作。

下界通配符:

  • 但是 ?super E 向下限定,E及其父类(泛型固定下边界)在做添加的时候是不会有问题的。
  • 因为:你泛型的下边界,已经限制。再向集合中添加数据,只能是期本身或者他的子类。
  • List<? super Person> list = new ArrayList<Person>();
  • 在此只能添加 Person对象,以及Person的子类。

参考链接:

http://blog.csdn.net/baple/article/details/25056169

http://blog.csdn.net/a695571342qqcom/article/details/53437125

 

转载于:https://www.cnblogs.com/shigeng/p/8536946.html

你可能感兴趣的文章
mysql学习之join用法
查看>>
UIScrollView+UIPageControl 图片切换加分页标示
查看>>
【未有之有】洛依文明相关
查看>>
源代码安装GIT
查看>>
电脑上报缺失msvcr100d.dll 处理(转)
查看>>
Java 开发中的对象拷贝
查看>>
创建型模式的特点和分类
查看>>
Python学习笔记——基础篇【第五周】——常用模块学习
查看>>
CentOS7.3编译安装Nginx设置开机启动
查看>>
个数是如何用大数据做行为预测的?
查看>>
孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6
查看>>
Linux基础命令---chown
查看>>
一种解决h5页面背景音乐不能自动播放的方案
查看>>
R语言统计字符串的字符数ncahr函数
查看>>
golang--Redis最佳的Go语言驱动
查看>>
Python socket编程
查看>>
js常用方法集锦
查看>>
redis 中文文档
查看>>
sqli-lab(13)
查看>>
Flash Builder升级debug player方式
查看>>