
正文
java泛化关系代码 深入理解java泛型详解
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何定义,使用Java泛化函数
一是,记住声明的格式
二是,理解这个格式所表达的意思
ListString list = new ArrayListString();
这个就是格式,
意思是:新建一个List,这个List里面放的全部是String
要表示这样一个语法,就是在List后面加尖括号,尖括号里面写存放东西的类型
主要就是尖括号,尖括号里面填一个类型,表示这个数据结构里面放的全部是这种类型的东西,别的类型放步进去,同样的,取出来也全不是这种类型,不可能是其他类型。
就是这么个理解思路。
另外,还可以从使用泛型的好处, 以及 如何定义泛型类 去更深的理解
相关问答
Q1: JAVA泛化及为什么需要泛化
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
比如,有一种类型为List,此时该List可以是任意类型的列表,如Integer,String等等。
如果把List类型改为ListInteger,则此时只表示整型的列表。
这就是所谓的将操作的数据类型指定为一个参数
那么这么做有什么好处呢?
比如原来我们有如下的程序:
List myIntList = new LinkedList();// 1
myIntList.add(new Integer(0));// 2
Integer x = (Integer) myIntList.iterator().next();// 3
在第三行中进行了强制类型转换。这个类型转换不仅仅带来了混乱,它还可能产生一个运行时错误(run time error),因为程序员可能会犯错。
程序员如何才能明确表示他们的意图,把一个list中的内容限制为一个特定的数据类型呢?这是generics背后的核心思想。这是上面程序片断的一个泛型版本:
ListInteger myIntList = new LinkedListInteger(); // 1
myIntList.add(new Integer(0)); // 2
Integer x = myIntList.iterator().next(); // 3
注意变量myIntList的类型声明。它指定这不是一个任意的List,而是一个Integer的List,写作:ListInteger。我们说List是一个带一个类型参数的泛型接口(a generic interface that takes a type parameter),本例中,类型参数是Integer。我们在创建这个List对象的时候也指定了一个类型参数。
另一个需要注意的是第3行没了类型转换。
Q2: java中泛化是什么意思啊
在面对对象编程中,泛化表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。
代码例子:
父类 父类实例=new 子类()
建议楼主到这个网站/论坛学习~~
谢谢
Q3: java中泛化的问题
转型而已
Cat c = wc; 这时候wc这个类会向上转型成Cat类,但是这个类并没有实质性变化,只是说你访问的成员都是Cat定义的而不是WhiteCat定义的(比如在WhiteCat中多定义一个Miao()的方法,这是你是无法访问的)
Cat cat = new WhiteCat();与你说的哪一句没有很大的区别,只是说new一个白猫出来之后就直接向上转型成Cat类了,而不是赋给白猫的变量.
WhiteCat c1=(WhiteCat)cat;这句是把一个父类对象强制转换成子类,这时候有可能会出问题,比如说Cat cat = new BlackCat();你的cat是一个叫黑猫的子类,这时候转换成WhiteCat()的时候会抛出ClassCastException,当然如果你本来就是WhiteCat的话,就是把访问接口给转成子类的了,这是就可以访问我所举例的Miao()方法了
java泛化关系代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于深入理解java泛型详解、java泛化关系代码的信息别忘了在本站进行查找喔。








