将多个 LinkedList 从一个 class 传递到另一个 - Java
Pass multiple LinkedList's from one class to another - Java
我有 2 个链表,我想通过一个对象将它们传递给另一个 class。我试过这段代码,但出现错误:java.lang.ClassCastException: [D cannot be cast to java.util.LinkedList.
第一个class:
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};
}
}
第二个Class:
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 建议在 method1 和 method2 之外写这个“@SuppressWarnings("unchecked")”。
目前您的代码无法正确编译,因为您无法编写
xPoints.add(20,40);
你应该使用
xPoints.add(new Point(20,40));
在四个地方修复此问题后,它可以正确编译和运行,没有报告 ClassCastException。
请注意,由于您的 method1
修改了参数提供的列表,因此您根本不应该 return 它。只需使用:
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
}
我有 2 个链表,我想通过一个对象将它们传递给另一个 class。我试过这段代码,但出现错误:java.lang.ClassCastException: [D cannot be cast to java.util.LinkedList.
第一个class:
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};
}
}
第二个Class:
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 建议在 method1 和 method2 之外写这个“@SuppressWarnings("unchecked")”。
目前您的代码无法正确编译,因为您无法编写
xPoints.add(20,40);
你应该使用
xPoints.add(new Point(20,40));
在四个地方修复此问题后,它可以正确编译和运行,没有报告 ClassCastException。
请注意,由于您的 method1
修改了参数提供的列表,因此您根本不应该 return 它。只需使用:
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
}