【发布时间】:2012-08-26 21:40:12
【问题描述】:
假设我有这样的课程Foo:
public class Foo<T> {
protected T invoke(Object... args);
}
现在假设我添加这个:
public class Bar<T, Arg> extends Foo<T> {
public T invoke(Arg arg);
}
这是否意味着我无法创建Bar<T, Object[]>,因为它会创建两个“基本上”具有相同签名的invoke() 方法?或者Bar.invoke() 在这种情况下会安全地隐藏Foo.invoke()(因为Bar.invoke() 在运行时采用Object 而不是Foo.invoke() 的Object[])?
与此相关:将Bar.invoke() 转发到Foo.invoke() 安全吗?
【问题讨论】:
-
您要解决什么问题?这看起来比任何 SCJP 问题都难。
标签: java generics inheritance variadic-functions member-hiding