50,543
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main(String[] args) {
Test t = new Test();
A a1 = new A<String>() {
@Override
public void set(String s) {
System.out.println("A<String>: " + s);
}
};
A a2 = (A<Integer>) n -> {
System.out.println("A<Integer>: " + n);
};
t.m1(a1);
t.m2(a2);
t.m2(a1);
}
public void m1(A<String> a) {
a.set("ABC");
}
public void m2(A<Integer> a) {
a.set(12345);
}
}
interface A<T>{
void set(T t);
}
输出
A<String>: ABC
A<Integer>: 12345
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at Test$1.set(Test.java:5)
at Test.m2(Test.java:26)
at Test.main(Test.java:18)