我想知道如何调用有界参数化方法。
例如,我有以下方法:
public static<R extends Reader & Runnable> R foo(R r) {
r.run();
return r;
}
我想知道如何调用这个方法。
我尝试以下代码:
private static class Test extends Reader implements Runnable {
...........
}
private static <T extends extends & Runnable> T getInstance() {
return (T) new Test();
}
public static void main(String[] args) {
foo(getInstance());
}
但我有以下例外:
线程“main”中的异常 java.lang.ClassCastException:类 ent.Main$Test 无法转换为类 java.lang.Runnable(ent.Main$Test 在加载程序“app”的未命名模块中;java.lang.Runnable 是在加载程序“bootstrap”的模块 java.base 中)
而且我找不到解决方案。
有人可以有想法吗?
先感谢您 !
慕姐4208626
相关分类