A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 商秀川 中级黑马   /  2012-8-25 01:10  /  1327 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//接口上加泛型
interface Inter<QQ> {
public abstract void show(QQ qq);
}
               //这块必须加泛型QQ
class InterImpl<QQ> implements Inter<QQ> {
                   @Override
              public void show(QQ qq) {
                System.out.println("show:"+qq);
     }
}
泛型:
当一个类的实现一个加泛型的类时,这个类必须加相同的泛型,否则报错。
可是在设计TreeSet本身具备的比较器时,这个类不能加泛型是为什么?
代码如下。

import java.util.Comparator;
                                                  //这不能加泛型
      public class CompareByStringLength/**/ implements Comparator<Teacher> {
              @Override
               public int compare(Teacher t1, Teacher t2) {
                    int num = t1.getName().length() - t2.getName().length();

                     int num2 = t1.getAge()-t2.getAge();
              int num3 = t1.getName().compareTo(t2.getName());
  
  
               return num==0?(num2==0?num3:num2):num;
      }
}

这两个都是一个类实现一个接口,为什么一个必须加两个泛型,另一个只能加一个泛型,否则报错。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马