如何在java上将对象更改为点
我一直在写我的最后一篇文章,构建一个Java程序来实现一个K-means算法,我被这个错误卡住了: 对象无法转换为点 这就是我的错误所在的代码如何在java上将对象更改为点,java,Java,我一直在写我的最后一篇文章,构建一个Java程序来实现一个K-means算法,我被这个错误卡住了: 对象无法转换为点 这就是我的错误所在的代码 public void plotCluster() { System.out.println("[Cluster: " + id+"]"); System.out.println("[Centroid: " + centroid + "]"); System.out.println("[Points: \n"); for(
public void plotCluster() {
System.out.println("[Cluster: " + id+"]");
System.out.println("[Centroid: " + centroid + "]");
System.out.println("[Points: \n");
for(Point p : points) { // error
System.out.println(p);
}
System.out.println("]");
}
从您的评论中,您提到您这样声明您的列表:
public List points;
我假设以后,你会:
points = new ArrayList();
List
是一个泛型类,type参数表示列表包含的对象的类型。如果不指定类型参数,则默认为对象
应使用类型参数声明列表:
public List<Point> points;
points = new ArrayList<>(); // note the <>
公共列表点;
points=新建ArrayList();//注意
在当前代码中,您有一个原始列表(默认为holding
Object
),这就是为什么for(Point p:points)
无法进行类型检查的原因。就编译器而言,列表包含对象
,因此您无法将其分配给具有类型点的p
您是否使用类型参数
声明列表?如List
?@SuryaHandika,请使用完整的code列表myList=new ArrayList()更新您的问题@Eric是的,但只要让它List myList=new ArrayList()
Darn的可能副本就行了!当我走开的时候,我正在回答我的问题!我也要说同样的话。哦,好吧。回答得好!(+1)