泛型
为什么可以
public <T extends Number> void printValue(T t){}
和
public void printValue(List<? extends Goods> goods){}
不能
public List<? extends Goods> void printValue(List goods){}
上面两个方法的区别在哪里?
正在回答 回答被采纳积分+1
同学你好,1、泛型方法的意义
1) 首先同学可以先了解泛型类和泛型方法
泛型类:是在实例化类的时候指明泛型的具体类型。泛型方法:是在调用方法的时候指明泛型的具体类型。
2) 泛型类在实例化的时候需要指明类型,如果想换一种类型,就需要重新new一次,就不够灵活。而使用泛型方法可以在调用的时候指明类型,更加灵活。从而避免了泛型类的弊端,这就是泛型方法的意义。如下图所示:
3、泛型的意义:
1) 保障类型安全,泛型的主要目标是实现java的类型安全。 泛型可以使编译器知道一个对象的限定类型是什么,这样编译器就可以在一个高的程度上验证这个类型,
2) 消除了强制类型转换 使得代码可读性好,减少了很多出错的机会
3) Java语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
祝学习愉快!
同学你好,1、List<? extends Goods>代表的是返回值类型是List类型,而void和List都是返回值类型,所以List无法与void共同存在,从而出现编译性异常。同学可去除void然后添加返回值即可。
2、区别:
public <T extends Number> void printValue(T t)是自定义泛型方法,代表就是该方法可以传入任意类型的数据。
public void printValue(List<? extends Goods> goods)是将泛型作为参数,如果参数为多个子类,可以使用( List<? extends 父类>xx )。这种情况下,在调用方法时,就可以传递父类及其子类作为参数了。
祝学习愉快!
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星