覆盖方法中参数的泛型

时间:2014-04-17 06:50:09

标签: java generics

我是否以错误的方式使用泛型? 对不起,我是仿制药的新手。

public interface Stream {
 public <T extends InputStream> void read(T in);
}

public class StreamReader implements Stream {
  @Override
 public <T extends InputStream> void read(T in) {
   ByteInputStream bis = (ByteInputStream) in;
   ...
}

2 个答案:

答案 0 :(得分:4)

我认为你正在寻找这个:

public interface Stream<T extends InputStream> {
    public void read(T in);
}

public class StreamReader implements Stream<ByteArrayInputStream> {

    @Override public void read(ByteArrayInputStream in) {
        ...
    }
}

答案 1 :(得分:-1)

您可以从以下位置更改方法:

public <T extends InputStream> void read(T in);

要:

public <T extends InputStream> void read(<T extends ByteInputStream> in);