我正在为 CallBack
使用 Interface
(我对这两者都很陌生)。到目前为止,我所有的 CallBacks
都是相同的元素类型,但现在我想返回不同的元素类型。
现状:
public interface CallBack {
void CallBack(String s)
}
我认为可行的方法:
public interface CallBack {
void CallBack(String s)
void CallBack(Integer i)
}
这(显然对你们大多数人来说)告诉我在使用 CallBack
时我必须实现这两种方法,这不是我的预期用途。
我知道我现在可以通过将其更改为 void CallBack(Object o)
来“解决”这个问题,但我不喜欢模棱两可的类型,并想让它更可靠。
有什么方法可以让我的CallBack
Override
看起来像这样:
...new CallBack() {
@Override
public void CallBack(String s) {
...
……或者……
...new CallBack() {
@Override
public void CallBack(Integer i) {
...
... 而不是必须同时实现两者,或者使用 Object
变体?
最佳答案
你可以使用如下的通用接口(interface)
public interface CallBack<T> {
T CallBack(T s);
}
并按如下方式使用它
new CallBack<String>() {
@Override
public String CallBack(String s) {
// TODO Auto-generated method stub
return null;
}
};
或
new CallBack<Integer>() {
@Override
public Integer CallBack(Integer s) {
// TODO Auto-generated method stub
return null;
}
};
关于java - 在接口(interface)中是否有重载方法的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087626/