S***A 发帖数: 133 | 1 谢谢!
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class test {
int ab;
ArrayList document;
ArrayList terms;
public test(Iterable document, List terms){
this.document = (ArrayList)document;
this.terms = (ArrayList)terms;
int a = this.document.size();
this.ab = a + 1;
}
public String toString(){
return "ab:" + this.ab;
}
public static test get(String [] doc, String [] terms) {
return new test(Arrays.asList(doc), Arrays.asList(terms));
}
public static void main(String[] args){
test t = get(new String[] {"1", "2", "3"}, new String[] {"x"} );
System.out.println(t.ab);
}
}
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$
ArrayList cannot be cast to java.util.ArrayList
at test.(test.java:13)
at test.get(test.java:25)
at test.main(test.java:39) | z*******3 发帖数: 13709 | 2 java.lang.ClassCastException
这个异常最好记一下,常见异常,面试有时候会问你
就是强制类型转换错误
this.document = (ArrayList)document;
this.terms = (ArrayList)terms;
这两个里面有一个类型不是ArrayList,强制转换出错了 | e********3 发帖数: 18578 | 3 你这个argument定义的是Interface的变量是很好的,但是后面就不能默认传进来的
Argument一定是ArrayList这个sub type,你需要try-catch处理一下
ClassCastException。
【在 S***A 的大作中提到】 : 谢谢! : import java.util.ArrayList; : import java.util.Arrays; : import java.util.List; : public class test { : int ab; : ArrayList document; : ArrayList terms; : : public test(Iterable document, List terms){
|
|