前言
Java泛型(generics
)是JDK 5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许程序员在编译时监测非法的类型。使用泛型机制编写的程序代码要比那些杂乱地使用Object
变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。泛型对于集合类尤其有用,例如,ArrayList
就是一个无处不在的集合类。
泛型的本质是参数化类型,也就是所操作的数据类型被指定为一个参数。
因为泛型的样式很多,本人有时候经常忘记一些泛型的写法,所以特此弄一个博客记录一下。
泛型类
单个泛型类
public class MyBean<T> { public T content; public T getContent() { return content; } public void setContent(T content) { this.content = content; } }
多个泛型类
public class MyBean<T,U> { public T content; public U name; public T getContent() { return content; } public void setContent(T content) { this.content = content; } public U getName() { return name; } public void setName(U name) { this.name = name; } }
单个泛型继承抽象类
public class MyView<T extends View> { public View content; public T getContent() { return (T)content; } public void setContent(T content) { this.content = content; } }
多个泛型继承抽象类
public class MyBean<T,U extends View> { public T content; public U view; public T getContent() { return content; } public void setContent(T content) { this.content = content; } public U getView() { return view; } public void setView(U view) { this.view = view; } }
接口泛型类
public class MyBean<E> implements Bean<E> { @Override public <E1> E1 show() { return null; } }
泛型方法
返回泛型
public class MyUtil { public <T> T getContent() { return (T)new String("demo"); } }
返回类里的泛型
public class MyBean<T> { private T content; public T getContent() { return content; } }
泛型也可以是一个集合
这个有点意义不明,就只是想表达一下List<String> 也可以是一个 T
public class MyUtil<T> { private T content; public List<String> getContent() { return (List<String>) content; } }
返回一个继承泛型
public class MyUtil { public static <T extends View> T getContent(Context context) { return (T)new View(context); } }
泛型接口类
单个泛型接口
public interface Bean<E> { <E> E show(); }
泛型抽象类
End