2014-04-17 1 views
0

제네릭을 잘못 사용하고 있습니까? 죄송합니다. 제네릭을 처음 사용합니다.오버라이드 (override) 된 메소드의 인수 용 제네릭

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

하려면 :

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; 
    ... 
} 

답변

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

당신은에서 방법을 변경할 수 있습니다

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

내 인터페이스 – Taranfx

+0

이것은 자바 신택스가 유효하지 않습니다. 엑스 – newacct

관련 문제