1

インターフェイスのジェネリックリターンタイプを定義して、実装クラスが独自のリターンタイプを持つことができるようにするにはどうすればよいですか?

public interface A {
    public <T> T doSomething();     
}


public class ImplA implements A {
    public SomethingElseA doSomething() {
        return obj.doSomething();
    }
}

public class ImplB implements A {
    public SomethingElseB doSomething() {
        return obj.doSomething();
    }
}
4

2 に答える 2

5

次のようにしてみてください。

interface A<T> {

  T doSomething();
}

class ImplA implements A<SomethingElseA> {

  public SomethingElseA doSomething() {
    ...
  }
}

class ImplB implements A<SomethingElseB> {

  public SomethingElseB doSomething() {
    ...
  }
}
于 2012-09-03T05:40:14.013 に答える
1

こういう意味だと思いますか?doは予約語なのでdo()をfoo()に変更しました...

public interface A<T> {
    public T foo();      
}

public class ImplA implements A<SomethingElseA> {
    @Override
    public SomethingElseA foo() {
        return obj.doSomething();
    }
}

public class ImplB implements A<SomethingElseB> {
    @Override
    public SomethingElseB foo() {
        return obj.doSomething();
    }
}
于 2012-09-03T05:40:47.600 に答える