如何将对象更改为指向java [关闭]

Posted

技术标签:

【中文标题】如何将对象更改为指向java [关闭]【英文标题】:how to change object to point on the java [closed] 【发布时间】: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<>() What is a raw type and why shouldn't we use it?的可能重复 【参考方案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)

以上是关于如何将对象更改为指向java [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将Google Chrome的更改标签快捷方式更改为Unix? [关闭]

如何将jquery mmenu更改为从右侧打开? [关闭]

html 此JavaScript将更改指向页面上SharePoint徽标的链接。默认链接转到站点主页,这会将其更改为whateve

如何将 Code128 字体文本框更改为可读条形码? [关闭]

如何在 C 语言中将所有 // 注释更改为 /* */ 注释? [关闭]

如何更改TOMCAT使用的Java版本?