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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package Test_Lianxi;

  2. /*
  3.         泛型定义在接口
  4. */
  5. //首先定义一个泛型接口

  6. interface Inter <T> {
  7.         void show(T t);
  8. }
  9. /*
  10. //然后定义一个类,实现该泛型接口,并【指定具体类型】
  11. class InterIm implements Inter<String>{
  12.         public void show(String t){
  13.                 System.out.println("show:"+t);
  14.         }
  15.         //在该方法中是可以再定义泛型方法来接收其他类型  【1】和【2】对比   就是我的这个问题讨论的地方
  16.         public <W> void show1(W w){
  17.                 System.out.println("show:"+w);
  18.         }
  19. }
  20. */
  21. //实现接口的时候仍然不确定类型。
  22. class InterImp <T> implements Inter<T> {   //【2】
  23.         public void show(T t){
  24.                 System.out.println("show:"+t);
  25.         }
  26. }



  27. public class Test7 {
  28.         public static void main(String[] args)
  29.         {        /*
  30.                 //1确定类型
  31.                 InterIm im = new  InterIm();
  32.                 im.show("String-"+"jian");
  33.                 im.show1("stati-"+9);
  34.                 */
  35.                 //2未知类型
  36.                 InterImp<Integer> imp = new InterImp<Integer>();
  37.                 imp.show(9);

  38.                 InterImp<String> imp1 = new InterImp<String>();
  39.                 imp1.show("jian");
  40.         }
  41. }
复制代码


这是毕老师15天-11 的视频内容,主要是讲泛型实现接口
首先定义一个泛型接口
然后定义了一个方法,实现了该泛型接口,并指定为String类型。
然后复写了接口中的方法,

这个时候创建实例的时候, 但是只能是String类型。
不能是其他类型。
这个时候我自作主张 在该类中添加了一个方法,泛型方法,实现了其他类型的接收。

然后老师继续讲了 在定义类实现接口的时候也不知道具体类型的情况下如何定义类。

大家请看,输出,
老师最后给出的方法,当需要其他类型的时候,还需要在创建一个实例,
而我上面添加的自定义泛型方法,则可以直接接收。

这种做法合适吗,

1 个回复

倒序浏览
interface Inter <T> {
        void show(T t);
}

这个接口中的<T> 是全局变量类型,整个类中都可以使用

        public <W> void show1(W w){
                System.out.println("show:"+w);
        }
这个方法中的 <W> 只在该方法中有效。

说不上哪个好,根据需求使用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马