是否有替代接口中的重载方法?

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变体?

Rad*_*FID 7

您可以使用如下的通用接口

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)