2013-07-27 250 views
-2

都有這個接口:獲得一個泛型類型實現

public interface Cloneable<T> 
{ 
    public T clone(); 
} 

而且它的實現類:

public class Clazz implements Cloneable<Clazz> 
{ 
    public Clazz clone(); 
} 

我能避免這種?:

implements Cloneable<Clazz> 

這將是根本implements Cloneable。對不起,我的英語,我從俄羅斯...

+0

你......不。至少,不是如果你想使用泛型。 –

回答

1

那麼你可以implements Cloneable,但隨後你會使用原料類型,通常是一個壞主意。

爲了增強打字的效果,您最好堅持使用自己的產品。

+0

我想這個類型是實現這個接口的那個類。類似於:public interface Cloneable sashok724

+0

@ user1936245:沒有這樣的構造。你必須明確地做到類型安全。 –

0

如果不包括<Clazz>,則將其視爲使用<Object>

如果那是可以接受的,那就去吧。不建議,除非你真的想失去一些你的類型安全。

是不是有一個Java Puzzlers提到這...我找不到它。

發現它here。到約38:00他們正在討論Glommer類型。

喬恩是正確的 - 原始類型與<Object>不一樣,他們嚇人。

+0

原始類型與僅僅使用''不同 - 即使對於與所討論的參數無關的泛型類型,也會清除* whole *接口。原始類型是可怕的。 –

-2

解決方案:public interface Cloneable<T extends Cloneable<T>>