java
2022-04-30
2022-04-30
得到了再失去,总是比从来没有得到更伤人。——《追风筝的人》
我们使用泛型的时候,可以如下限定类型:
1 | public static class Obj<T extends Obj<T>> { |
那么我们Obj
中的泛型就只能指定为继承了Obj
的类
1 | Obj<ObjChild> obj = new Obj<>(); |
例如:
1 | public static class ObjChild extends Obj<ObjChild> { |
我们如果想要限定,既继承了Obj
,且实现了Serializable
接口的类,就可以使用&
符号这么写:
1 | public static class Obj<T extends Obj<T> & Serializable> { |
我们相应的子类,就需要这么写才符合泛型
1 | public static class ObjChild extends Obj<ObjChild> implements Serializable { |
此处注意我们可以继续指定多个接口,但继承的类只能指定一个且必须在首位
1 | public static class Obj<T extends Obj<T> & Serializable & Cloneable> { |