Tim*_*j93 1 java android overriding interface callback
我正在使用Interface
一个CallBack
(两者都是我很新的).到目前为止,我所有的都是CallBacks
相同的元素类型,但现在我想返回一个不同的元素类型.
现在的情况:
public interface CallBack {
void CallBack(String s)
}
Run Code Online (Sandbox Code Playgroud)
我认为会起作用:
public interface CallBack {
void CallBack(String s)
void CallBack(Integer i)
}
Run Code Online (Sandbox Code Playgroud)
这(显然对于大多数人来说)告诉我在使用时必须实现这两种方法CallBack
,这不是我的预期用途.
我知道我现在可以通过改变它来'修复'这个void CallBack(Object o)
,但我不喜欢模糊的类型,并希望使它更加坚固.
我有什么方法可以做到这一点,所以我CallBack
Override
看起来像这样:
...new CallBack() {
@Override
public void CallBack(String s) {
...
Run Code Online (Sandbox Code Playgroud)
... 要么 ...
...new CallBack() {
@Override
public void CallBack(Integer i) {
...
Run Code Online (Sandbox Code Playgroud)
...而不是必须实现两者,或使用Object
变体?
您可以使用如下的通用接口
public interface CallBack<T> {
T CallBack(T s);
}
Run Code Online (Sandbox Code Playgroud)
并按如下方式使用它
new CallBack<String>() {
@Override
public String CallBack(String s) {
// TODO Auto-generated method stub
return null;
}
};
Run Code Online (Sandbox Code Playgroud)
要么
new CallBack<Integer>() {
@Override
public Integer CallBack(Integer s) {
// TODO Auto-generated method stub
return null;
}
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
771 次 |
最近记录: |