有这个接口:
public interface Cloneable<T>
{
public T clone();
}
它正在实现类:
public class Clazz implements Cloneable<Clazz>
{
public Clazz clone();
}
我可以避免这种情况吗?:
implements Cloneable<Clazz>
这将是简单implements Cloneable的。对不起我的英语,我来自俄罗斯...
好吧,你可以写implements Cloneable,但是你会使用原始类型,这通常是个坏主意。
为了更强大的打字,你最好坚持你所拥有的。
如果您省略 ,<Clazz>则将其视为已使用<Object>。
如果这是可以接受的,那就去吧。除非您真的想失去一些类型安全性,否则不推荐。
有没有Java Puzzlers提到这个...我找不到它。
在这里找到它。转到大约 38:00,他们正在讨论Glommer类型。
Jon 是正确的 - 原始类型与原始类型不同<Object>,它们很可怕。
Solution: public interface Cloneable<T extends Cloneable<T>>