如何在java上将对象更改为点

如何在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(

我一直在写我的最后一篇文章,构建一个Java程序来实现一个K-means算法,我被这个错误卡住了:

对象无法转换为点

这就是我的错误所在的代码

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)