获得通用类型的实现类

时间:2013-07-27 21:51:36

标签: java generics interface

有这个界面:

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

它正在实施课程:

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

我可以避免这种情况吗?:

implements Cloneable<Clazz>

它只是implements Cloneable。对不起我的英语,我来自俄罗斯...

3 个答案:

答案 0 :(得分:1)

可以implements Cloneable,但是你会使用 raw 类型,这通常是一个坏主意。

为了更好的打字,你最好坚持你所拥有的。

答案 1 :(得分:0)

如果遗漏<Clazz>,则会将其视为使用<Object>

如果可以接受,那就去吧。不推荐,除非你真的想失去一些类型安全。

没有Java Puzzlers提到这个......我找不到它。

找到它here。转到大约38:00他们正在讨论Glommer类型。

Jon是正确的 - 原始类型与<Object>不同,而且 可怕。

答案 2 :(得分:-2)

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