【发布时间】:2015-05-07 18:30:18
【问题描述】:
大家好,今天大家都在尝试在我的 ArrayList 中执行此操作,我知道这是可能的,但它在 main 处给了我一个例外。现在我想知道我做错了什么或者最好的方法是什么。我试图有一个 ArrayList,在 ArrayList 里面我有另一个,我给它一个变量。
import java.util.ArrayList;
import java.util.Collection;
public class Example3 {
public static void main(String[] args) {
ArrayList<ArrayList<Family>> smallFamily = new ArrayList<ArrayList<Family>>();
smallFamily.addAll((Collection<? extends ArrayList<Family>>) (new Family("John",89 )));
smallFamily.addAll((Collection<? extends ArrayList<Family>>) new Family ("Smith", 78)));
for(ArrayList<Family> s: smallFamily){
System.out.println(s);
}
}
下面是我的家庭课程,在我的家庭中这是价值观
public class Family {
public String Name;
public int weight;
public Family(String Name, int weight){
this.Name = Name;
this.weight = weight;
}
public String toString(){
return ("The name is " + this.Name + "The weight is: " + this.weight);
}
}}
编译和运行程序时抛出的异常是
Exception in thread "main" java.lang.ClassCastException: Examples.Family cannot be cast to java.util.Collection
at Examples.Example3.main(Example3.java:9)
现在我正在自学 Java,没有人可以请教。任何形式的帮助将不胜感激。
【问题讨论】:
-
您在
new Family ("Smith", 78)之前的第二行smallFamily.addAll上忘记了(。 -
附注一下,不要将你的变量字符串名称,int weight public,它应该设置为private。
-
对不起,这可能是在打字,但在我的程序中很清楚。
-
异常意味着您将 Family 转换为 Collection> 并且 Family 不扩展 Collection。你到底想做什么?为什么需要数组数组?
-
我试图开箱即用,看看这是否可行。