1. java的泛型有没有用
当然有用,其实泛型存在的意义就好比抽象类,抽象类是用来规范子类。而泛型对于实现代码复用,提高开发效率帮助很大。
当然不用泛型可不可以,答案是可以,其实很多程序员开发多年都忘记使用泛型的方做开发,这是一个深度问题,而不是广议问题。要想弄懂泛型,就必须要知道它存在的意义。
在项目研发中,经常会出现一个方法,多种不同类型的对象进行调用,简单的做法就是为各自的类型写上一个方法,独立调用,比如:
//两个整数相加
public int plus(int a, int b){
return a+b;
}
//两个字符串相连接
public string connectStr(string str1, string str2){
return str + str2
}
上面是两个函数,一个是整数的相加,一个是字符串的连接,当然,这是很简单两个函数;但是可以看出两个函数的共同之处,都是相加,"+"对于字符串来讲是字符串的连接,但是可以把这两个函数写成一个函数,如下:
public T plusTwoObj(T objT1, T objT2){
return objT1 + obT2;
}
这个函数中出现的T,其实就是一个占位符,也就是这个位置由T来代替;类似于占座,它起到的作用只是占座,不会有实际的意义,最终这个位置是由其他人来坐的;比如:T给int占座,给string占座,给float占座,给自定义类型占座,实际的操作是由其它类型来处理的,其它类型会代替它;
这个函数是由两个函数提出的公有函数,这样,它就不局限于某一个类型的函数进行相加处理,而是许多类型可通用的方法,所以,泛型有代码复用、提高研发效率的作用;而定义成泛型,而不用所有类型基类 object类型呢,就涉及数据类型转换的问题,类型转换的拆箱和装箱需要消耗大量内存和cpu资源。
泛型需要很系统的来解释,几句话可能说不清,建议你还是把教材视频等多翻出来看看。建议把泛型和抽象类结合在一起看,两者的相似点和区别。
2. java中泛型的使用
泛型可以避免强制类型转换,设定集合对象中存储的对象类型。
比如List<String> list = new ArrayList<String>();
那在这个list中,只能存储字符串对象。
3. java泛型深入解释:public <T> Test<T> tttttt(String s,Bean bean) {}
public<T>腔升配Test<T>tttttt(Strings,Bean笑胡bean){}
第一个<T>是固定语法 可以理解为在这个方法中使用的泛型用符号T表示,当然你也可以伍指用别的名字。
Test<T> 说明类型Test的定义中也使用了泛型public class Test<T> {}