这是我的场景:
class SomeBaseClass
{
public void foo(String str)
{
.......
}
public void foo(String strs[])
{
.......
}
}
class MyClass extends SomeBaseClass
{
public void foo(String str)
{
super.foo(str);
}
public void foo(String strs[])
{
throw new RuntimeException("only one input please!");
}
}
逻辑非常简单。 “SomeBaseClass”是我无法修改的第三方工具。我想限制它的功能并且不想允许 foo(String strs[])。
问题是在 SomeBaseClass foo(Sting str) 内部调用 foo(String strs[]) 。因此,当我调用 MyClass 的 foo(String str) 时,我收到运行时异常。如何告诉 SomeBaseClassclass 使用 SomeBaseClass::foo(String strs[]) 以及所有其他类使用 MyClass ::foo(String strs[])
考虑写一个包装器
class MyClass extends SomeBaseClass
{
private SomeBaseClass impl = new SomeBaseClass ();
public void foo(String str)
{
impl.foo(str);
}
public void foo(String strs[])
{
throw new RuntimeException("only one input please!");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)