我有一个java类
public class PointCloud<T extends Point>
{
protected ArrayList<T > points = null;
public ArrayList<T> getPoints()
{
return points;
}
public void addPoints(ArrayList<T> arrayList)
{
this.points.addAll(arrayList);
}
public static PointCloud<? extends Point> combine(ArrayList<PointCloud<? extends Point>> pcList)
{
PointCloud<? extends Point> combinated_pc = new PointCloud<>();
for(PointCloud<? extends Point> pc: pcList)
{
combinated_pc.addPoints(pc.getPoints());
}
return combinated_pc;
}
}
我的java错误是:
中的方法
addPoints(ArrayList < capture#8-of ? extends Point>)
类型PointCloud<capture#8-of ? extends Point>
不适用于 参数(ArrayList < capture#9-of ? extends Point>
)
答案 0 :(得分:0)
在这里,您必须指定正确的泛型类型才能使用addPoints
方法。
使用以下内容更改合并..
public static <P extends Point> PointCloud<P> combine(ArrayList<PointCloud<P>> pcList) {
PointCloud<P> combinated_pc = new PointCloud<>();
for(PointCloud<P> pc: pcList) {
combinated_pc.addPoints(pc.getPoints());
}
return combinated_pc;
}
如果您对组合不同类型的对象感兴趣,则可以修改addPoints
方法。