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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小小瓶盖❤ 中级黑马   /  2014-2-21 02:29  /  993 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. 最近编程序的时候遇到一个java泛型的语法问题,不知道应该怎样实现,麻烦各位大牛帮忙解答:



  2. 如果父类在类上声明了泛型的话子类可以将泛型类型指定成一个具体类型,比如:



  3. class FatherA<T> {



  4. public  void test(T t) {

  5.       ;

  6. }



  7. }



  8. class ChildA extends FatherA<String>{

  9. @Override

  10. public  void test(String t) {//这里的 t 类型是 java.lang.String

  11.      t.compareTo(t);//编译通过

  12. }



  13. }



  14. 可是如果父类直接在方法前声明了泛型的话子类应该如何指定具体类型呢? 比如:



  15. class FatherB {



  16. public <T> void test(T t) {

  17.       ;

  18. }



  19. }





  20. class ChildB extends FatherB {

  21. @Override

  22. public <String> void test(String t) {  //这里的 t 其实是泛型的 并不是java.lang.String类型

  23.      t.compareTo(t);//编译不通过

  24. }



  25. }





  26. 请教各位大牛,ChildB 继承的 test方法能指定成java.lang.String类型吗?
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

3 个回复

倒序浏览
public <T> void test(T t) {

      ;

}
首先,你要理解前面加T 和后面加T的含义 ,如果你是前缀加<T>的话,那么就是告诉编译器:这是我新指定的一个类型,

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
你的compareTo()方法哪来的?能把代码给全吗?
回复 使用道具 举报
你都确定了String类型还要用什么泛型?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马