【发布时间】:2020-09-20 22:11:26
【问题描述】:
考虑以下情况:
public class PointCloud<T extends Point> { }
public class PointCloud3d extends PointCloud<Point3d> { }
如何编写一个采用泛型参数T 的类,该参数是PointCloud<T> 的扩展?
public class PointCloudReader<T extends PointCloud> {
T read(String path);
}
或
public class PointCloudReader<T extends PointCloud<?>> {
T read(String path);
}
这两个类定义有什么区别?
【问题讨论】:
-
正确的做法可能真的是
public class PointCloudReader<P extends Point, T extends PointCloud<P>> -
@LouisWasserman 我实际上认为这就是我需要的答案。
-
@GiorgiTsiklauri 我有一个 JNI 项目,使用继承和泛型比单独使用 Java 要复杂得多。
标签: java generics inheritance