昆明java培训
达内昆明广州春城路

18487146383

热门课程

Java中泛型的全面解析——实例分析

  • 时间:2016-07-22
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明达内java培训的老师接上上期的Java中泛型的全面解析——类型擦除。了解了类型擦除机制之后,就会明白编译器承担了全部的类型检查工作。编译器禁止某些泛型的使用方式,正是为了确保类型的安全性。接上次提到的List<Object>和List<String>为例来具体分析:

public void inspect(List<Object> list) {   

for (Object obj : list) {       

System.out.println(obj);   

}   

list.add(1); //这个操作在当前方法的上下文是合法的。

}

public void test() {   

List<String> strs = new ArrayList<String>();   

inspect(strs); //编译错误

}

这段代码中,inspect方法接受List<Object>作为参数,当在test方法中试图传入List<String>的时候,会出现编译错误。假设这样的做法是允许的,那么在inspect方法就可以通过list.add(1)来向集合中添加一个数字。这样在test方法看来,其声明为List<String>的集合中却被添加了一个Integer类型的对象。这显然是违反类型安全的原则的,在某个时候肯定会抛出ClassCastException。因此,编译器禁止这样的行为。编译器会尽可能的检查可能存在的类型安全问题。对于确定是违反相关原则的地方,会给出编译错误。当编译器无法判断类型的使用是否正确的时候,会给出警告信息。

通过这次达内java培训老师给大家讲解的实例分析,大家是不是对Java中泛型更加的明白和了解。

上一篇:Java中泛型的全面解析——类型擦除
下一篇:Java中泛型的全面解析——通配符与上下界

昆明java培训教你实现JSP页面跳转简易方法,120天后月薪过万

昆明Java培训告诉你java和大数据和互联网发展中起什么作用

昆明java培训:初学者学Java Script 5个小技巧

昆明java培训多久可以学会?120天教你成为java开发大神!

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货