是<t extends =“”可比<t =“”>&gt; neccessary?我们可以为所有变量使用可比数据类型吗?

时间:2015-08-14 03:48:22

标签: java generics interface comparable

public class h{

   private int n;
   private Comparable[] harr;      

public class h<T extends Comparable<T>>{

   private int n;
   private T[] harr; 

两者之间的区别是什么,为什么以及何时是后者优先

1 个答案:

答案 0 :(得分:1)

后者提供类型安全性。对于前者,实现Comparable的任何两个对象都可以存储在harr中,即使它们彼此不具有可比性(例如,IntegerCharset)。这可能会导致运行时出现问题。对于后者,这些问题将在编译时捕获。