2014-09-04 80 views
0

泛型方法:如何重寫泛型方法

public <T> void foo(T t); 

希望重寫的方法:

public void foo(MyType t); 

什麼是Java語法來實現這一目標?

+0

T受T的約束嗎?如在中,是一些通用'類中包含的方法示例 {}' – Upio 2014-09-04 09:35:54

回答

2

更好的設計是。

interface Generic<T> { 
    void foo(T t); 
} 

class Impl implements Generic<MyType> { 
    @Override 
    public void foo(MyType t) { } 
} 
0
interface Base { 
    public <T> void foo(T t); 
} 

class Derived implements Base { 
    public <T> void foo(T t){ 

    } 
} 
+0

您認爲這裏與此有關嗎? – VinayVeluri 2014-09-04 09:29:06

+0

這是答案。你認爲它錯了嗎? – talex 2014-09-04 09:30:50

+0

也許他想在overriden方法中具體實現。 – 2014-09-04 09:38:23

2

你可能想要做這樣的事情:

abstract class Parent { 

    public abstract <T extends Object> void foo(T t); 

} 

public class Implementor extends Parent { 

    @Override 
    public <MyType> void foo(MyType t) { 

    } 
} 

類似的問題在這裏回答爲好:Java generic method inheritance and override rules

+0

你是否明白'MyType'這裏是通用參數名稱,不是現有類的名稱? – talex 2014-09-04 09:41:33