【问题标题】:how to change object to point on the java [closed]如何将对象更改为指向java [关闭]
【发布时间】:2018-01-02 14:48:53
【问题描述】:

我一直在写我的期末论文,构建一个 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("]");
}

【问题讨论】:

  • 你声明列表时是否带有类型参数<>?喜欢List<Point>
  • @SuryaHandika ,请用完整的代码更新您的问题
  • List myList = new ArrayList();
  • @Eric 是的,但只要做到List<Point> myList = new ArrayList<>()

标签: java


【解决方案1】:

从您的评论中,您提到您这样声明您的列表:

public List points;

我会假设稍后你会这样做:

points = new ArrayList();

List 是一个泛型类,类型参数表示列表包含的对象类型。如果不指定类型参数,则默认为Object

您应该使用类型参数声明您的列表:

public List<Point> points;

points = new ArrayList<>();           // note the <>

在您当前的代码中,您有一个原始 列表(默认保存Object),这就是for(Point p : points) 无法进行类型检查的原因。就编译器而言,该列表包含Object,因此您不能将其分配给类型为Pointp

【讨论】:

  • 该死!当我走神时,我正在回答中!我想说同样的话。那好吧。不错的答案! (+1)
猜你喜欢
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
  • 2014-07-13
  • 2013-04-28
  • 2014-10-23
  • 2020-07-11
  • 2019-04-05
  • 2021-12-02
相关资源
最近更新 更多