我无法正确使用 Java 捕获组。
假设我有这些课程:
class Foo{}
class Bar{}
interface InterfaceXYZ<T>{
void doSomething(T t);
}
class FooImplementation implements InterfaceXYZ<Foo>{
@Override void doSomething(Foo){}
}
最后,
class Delegator<T>{
Delegator(InterfaceXYZ<T> delegate){this.delegate = delegate;}
void doSomething(T t) {
delegate.doSomething(t);
}
private InterfaceXYZ<T> delegate;
}
问题是这很好用 -
FooImplementation fi = new FooImplementation();
Delegator d = new Delegator(fi);
d.doSomething(new Foo());
这不能正常工作(如预期的那样) - 导致运行时异常
FooImplementation fi = new FooImplementation();
Delegator d = new Delegator(fi);
d.doSomething(new Bar());
为什么它不抛出编译时错误?如果我必须让它抛出编译时错误,我需要进行哪些更改?