泛型指的就是在类定义的时候并不会设置类中的属性或方法中的参数的具体类型,而是在类使用时再进行定义。
class MyClass<T>{
T value;
}
MyClass<String> myclass = new MyClass<String>();
MyClass<Integer> myclass = new MyClass<Integer>();
虽然说<>内的字母是任意的,但规范期间一般使用如下字母:
C++中的泛型可以任意,但Java中泛型只能接受类,所有的基本数据类型必须使用包装类!
class MyClass{
public <T> void Method(T t){
System.out.println(t);
}
}
值得注意的是,
有了泛型,又出现了心得问题,参数统一问题。如果都是泛型,但类型不一致就会报错。所有就有了通配符。
它可以接受所有得泛型,但又不能随意修改。
?extends 类:设置泛型上限。
?super类:设置泛型下限。
与泛型类相同,也可以定义泛型接口。
interface IMessage<T>{
public void print(T t);
}
对于接口的实现又两种:
一:继续使用泛型
interface IMessage<T>{
public void print(Tt);
}
class MessageImp1<T> implements IMessage<T>{
@override
public void print(Tt){
system.out.println(t);
}
}
二:给出具体类型
interface IMessage<T>{
public void print(T t);
}
class MessageImpl implements IMessage<String>{
@override
public void print(String t){
system.out.println(t);
}
}
原文:https://www.cnblogs.com/LampsAsarum/p/12248111.html