将多个LinkedList从一个类传递到另一个类 - Java

时间:2015-07-13 05:01:14

标签: java linked-list

我有2个LinkedLists,我想通过Object将它们传递给另一个类。我尝试了这段代码,但是我收到错误: java.lang.ClassCastException:[D无法强制转换为java.util.LinkedList

头等舱:

public class class1{
public Object[] method1(LinkedList<Point> xList,LinkedList<Point> yList){

xList.add(new Point(10,10));
yList.add(new Point(20,10));

return new Object[]{xList, yList};
}
}

第二课

public class class2{
public void method2(){

LinkedList<Point> xPoints = new LinkedList<Point>();
LinkedList<Point> yPoints = new LinkedList<Point>();

xPoints.add(new Point(20,40));
yPoints.add(new Point(15,15));

class1 get = new class1();
Object getObj[] = get.method1(xPoints,yPoints);

xPoints = (LinkedList<Point>) getObj[0];
yPoints = (LinkedList<Point>) getObj[1];
}

此外,eclipse建议写这个&#34; @SuppressWarnings(&#34;未经检查&#34;)&#34;方法1和方法2之外。

1 个答案:

答案 0 :(得分:0)

目前您的代码无法正确编译,因为您无法编写

xPoints.add(20,40);

你应该使用

xPoints.add(new Point(20,40));

在四个位置修复后,它会正确编译并运行,不会报告ClassCastException。

请注意,当您的method1修改参数提供的列表时,您根本不应该返回它。只需使用:

public void method1(LinkedList<Point> xList, LinkedList<Point> yList) {
    xList.add(new Point(10, 10));
    yList.add(new Point(20, 10));
}

public void method2() {

    LinkedList<Point> xPoints = new LinkedList<Point>();
    LinkedList<Point> yPoints = new LinkedList<Point>();

    xPoints.add(new Point(20, 40));
    yPoints.add(new Point(15, 15));

    class1 get = new class1();
    get.method1(xPoints, yPoints);
    // use xPoints and yPoints here: new point is already added
}