java中泛型的使用,学会java泛型能做什么
大家好,今天小编来为大家解答以下的问题,关于java中泛型的使用,学会java泛型能做什么这个很多人还不知道,现在让我们一起来看看吧!
java中什么是泛型,怎么用泛型
这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中:
1:什么是泛型?
泛型就是广泛的类型,也是一种数据类型,而这种数据类型可以是任意类型,编写过程中当中不能确定类型,创建对象时必须指定具体类型,不指定也可以,但是会出现一些错误。
泛型是编译器行为,只能在编译期有效,如果能够跨过编译器,那么泛型就没有任何意义了。
2、泛型类
怎么定义泛型类?
在类后面加<>,<>中可以编写任意长度任意字符,不能是数值。(一般用26个大写英文字母表示)
泛型类<具体类型>变量名= new泛型类<>();
3.怎么使用泛型
有以下几种使用场景以及放在那种位置
泛型只能定义引用数据类型,而不能使用基本数据类型
泛型类、泛型方法、泛型接口、泛型通配符
例如:作用在类上时( public class Animal<E>{ E pet;}),泛型跟在类后边,可以指定用了泛型的类内部的 pet的类型。
作用在对象上时( Animal<Dog> str= new Animal<Dog>();),泛型跟在类后边,使得对象类的的 pet属性为 Dog类型。
java泛型的作用,举例说明!
简言之,泛型是为了避免类转换异常的发生,使程序操作更安全,举例:
1、声明泛型:
class Point<T>{
private T var;
public T getVar(){
return var;
}
public void setVar(T var){
this.var=var;
}
}
2、使用Point类将var的类型设置成整数
public class Test{
public static void maint(String[] args){
Point<Integer> p=new Point<Integer>();//var类型为Integer
p.setVar(30);//设置数字,自动装箱
System.out.println(p.getVar()* 2);
}
}
3、运行:60
分析:使用泛型强制类型为某类型,比如上面为Integer,在使用setVar()方法时如果参数不是Integer(如String),程序就会报错,提示输入非法。当然你认为也可以不用泛型,比如将Point定义如下:
class Point1{
private Object var;
public Object getVar(){
return var;
}
public void setVar(Object var){
this.var=var;
}
}
此时,Test程序依然可以运行,但是如果将Test改动如下:
public class Test{
public static void maint(String[] args){
Point1 p=new Point1();
p.setVar(“江山美人");
System.out.println(p.getVar()* 2);
}
}
程序编写正常,不会报错,但到了运行才提示异常。而如果上面是应用泛型,在写下System.out.println(p.getVar()* 2);直接就会在写程序时提示错误!
这样就达到了使用泛型的目的——避免类转换异常的发生,使程序操作更安全。
希望能帮到你!
java中泛型指的是什么
我来简述一下泛型的知识吧:
如果一个类的后面跟上一个尖括号,表示这个类是泛型类.
可以这样声明:class名称<泛型列表>
如:class A<E>
其中A是泛型类的名称,E是泛型.(可以是任何对象或接口)
其中给出的泛型可以作为类的成员变量的类型,方法的类型以及局部变量的类型.类体和变通类完全一样,由成员变量和方法构成.
举个例子:
class Chorus<E,F>
{
void makeChorus(E person,F yueqi)
{
yueqi.toString();
person.toString();
}
}
--------------
上面的类中将类E和类F作为类Chorus的一部分来使用.这就是泛型类的目的,将多个类包含进一个类来使用!!!
如果你想深入理解就可以找一些书来看,一些基本的教材里面也都有提到泛型的.
希望我说的对你有所帮助!!!
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!