黑马程序员技术交流社区

标题: 【已解决】关于覆盖方法泛型疑问 [打印本页]

作者: 刘芮铭    时间: 2012-8-26 12:42
标题: 【已解决】关于覆盖方法泛型疑问
本帖最后由 刘芮铭 于 2012-8-28 11:32 编辑

import java.util.*;
class MyStringComparator implements Comparator //我的问题1:实现一个接口的类上面能否加上泛型?
{
public int compare(Object obj1,Object obj2) //问题2:覆盖接口里面的方法上面可否加上泛型?如果能加泛型!需要覆盖的方法需要传入Object类型,会产生类型不匹配!
{
  String s1 = (String)obj1;
  String s2 = (String)obj2;
  
  int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
  if(num==0)
   return s1.compareTo(s2);

  return num;

}
}
class  TreeSetTest
{
public static void main(String[] args)
{
  TreeSet<String> ts = new TreeSet<String>(new MyStringComparator());
  ts.add("abc");
  ts.add("dbc");
  ts.add("bcde");
  ts.add("cdfrg");
  ts.add("dasfdf");

  for(String str : ts)
  {
   System.out.println(str);
  }
}
}



作者: 刘芮铭    时间: 2012-8-26 16:06
肿么没人回答啊。。。
作者: 史龙贤    时间: 2012-8-26 16:34
应该是可以加的。接口其实是更抽象的类,一个java类实现了接口,后面自己还是一个java类。java类上是可以加泛型的。类里面的方法没必要加泛型,毕竟接口中人家已经定义好了。
作者: 方志亮    时间: 2012-8-26 16:43
泛型的定义方式
                A:泛型定义在类上
                        class Demo<QQ>
                        {
                                public void show(QQ qq){}
                        }

                B:泛型定义在方法上
                        class Demo
                        {
                                public <BM> void show(BM bm){}
                        }

                C:泛型定义在接口上
                        interface Inter<QQ>
                        {
                                public abstrace void show(QQ qq);
                        }
作者: 刘芮铭    时间: 2012-8-26 17:45
方志亮 发表于 2012-8-26 16:43
泛型的定义方式
                A:泛型定义在类上
                        class Demo

你没搞清楚我的问题吧  我问的是特定时候能不能加?
作者: 方志亮    时间: 2012-8-26 17:56
本帖最后由 方志亮 于 2012-8-26 17:58 编辑

后边不是有泛型吗  不是告诉你泛型都可以加在什么地方了吗


因为Object中没有那些String特有的方法  所以会出现不匹配
作者: 刘芮铭    时间: 2012-8-26 18:36
方志亮 发表于 2012-8-26 17:56
后边不是有泛型吗  不是告诉你泛型都可以加在什么地方了吗

那怎么解决呢?
作者: 方志亮    时间: 2012-8-26 18:41
刘芮铭 发表于 2012-8-26 18:36
那怎么解决呢?

直接加不就完了吗




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2