这是我的情景:
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!");
}
}
Run Code Online (Sandbox Code Playgroud)
逻辑非常简单."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!");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |