泛型与File的学习。

泛型与File的学习。,第1张

泛型与File的学习。 1.什么是泛型

 

 

混进来了别的数据类型。转换类型 *** 作会出问题。需要在添加的时候对添加元素的类型做检查。

使用泛型的时候泛型是一个类型。不能是基本数据类型

 

试图加字符串的时候编译就过不去了。

定义一个结构的时候有了泛型。才能加泛型。

 这个红线标的方法识别到是Integer的类型。然后Integer也能识别到。

 

泛型套娃。

 Entry是Map的内部类。用点

 2.将已有结构改成泛型

类前

 

 迭代器这里也改成泛型。

 

 实现的Compareble类,要比较的泛型也修改。

定制排序里Comparator也要修改。 

修改后里面有employ类型了,省的再强转判断。

按生日排序,就要比较MyDate。Comparable里面泛型用这个。 

3.自定义泛型类

 可以定义get,set方法。

在另一个Test里测试。

 

 set的时候出类型了。

 

 

 

 

 

 泛型是创建对象的时候产生的,静态方法早于它创建。但泛型方法可以声明为静态的,然后里面再用泛型。

 

异常类里不用泛型

 

 

 

4.泛型方法

 并不是方法里用了泛型就是泛型方法。

 是指明了E[]是一个泛型参数。返回的List也是泛型。

 调用order里上图写的方法,

跟order是什么泛型没有一点关系,

调用这个方法后接受List就完事。

 这俩并非继承,就是里面装的类型不一样。

5.通配符的使用

不能向通配符的List里面加数据。但是可以加null,因为

 

 

 

 get的时候里面的类型是?,所以自动生成的类型是object。

不能写但是能读。

5.1有限制的通配符的使用 5.1.1赋值的规则

<?extends  类A>    L1,    可以赋值给L1的是下面泛型里,小于等于。即Person的子或Person。

<?super  类A>    L2,则是大于等于,即Person的父或者Person。

 5.1.2读取的规则(看上界)

【Person,+00】的时候,选个最大的放在左面读取。所以用object

【-00,Person】的时候,此时最大的是Person,选Person或者比Person大的都可以接受。(多态)。

List 1 的声明<=person。

List2的声明>=Person

 

5.1.3写入的规则(看下界),必须比界限小或者等于界限。可以用多态写进去。

【Person,+00】的时候,写入的类型小于等于Person即可。用多态解释。

【-00,Person】的时候,小的界限没法找出来,所以不能写。

List 1 的声明<=person

 List2的声明>=Person

 

读取看上界,写入看下界。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5699018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存