• 泛型里面的<T> List<T>前面的<T>代表是什么意思?为什么要加<T>? <T> T


    import java.util.*;
    
    class Fruit {     public String toString() {    return "Fruit"; } }
    
    class Apple extends Fruit {    public String toString(){ return "Apple";    } }
    
    class Person {    public String toString(){    return "Person";    } }
    
    class ClassName<T> {//主类,把你文件名改成ClassName.java
         
    
         void show_1(T t){
            System.out.println("show_1  "+ t.toString());
        }
        
        <E> void show_2(E e){
            System.out.println("show_2  "+e.toString());
        }
        
        <T> void show_3(T t){
            System.out.println("show_3  "+t.toString());
        }
        
        
    
        public static void main(String[] args) {
            ClassName<Fruit> o = new ClassName<Fruit>();
            Fruit f = new Fruit();
            Apple a = new Apple();
            Person p = new Person();
            System.out.println("show_1 演示________________________");
            o.show_1( f );
            o.show_1( a );
    //        o.show_1( p );  楼主把这行代码去掉注释看一下,是不能编译通过的。因为在
    //        ClassName<Fruit>中已经限定了全局的T为Fruit,所以不能再加入Person;
            System.out.println("show_2 演示________________________");
            o.show_2( f );
            o.show_2( a );
            o.show_2( p );
            System.out.println("show_3 演示________________________");
            o.show_3( f );
            o.show_3( a );
            o.show_3( p );
            
        }
    }
    程序输出:
    show_1 演示________________________
    show_1  Fruit
    show_1  Apple
    show_2 演示________________________
    show_2  Fruit
    show_2  Apple
    show_2  Person
    show_3 演示________________________
    show_3  Fruit
    show_3  Apple
    show_3  Person
    1. import java.util.*;
    2.  
       
    3.  
      class Fruit { public String toString() { return "Fruit"; } }
    4.  
       
    5.  
      class Apple extends Fruit { public String toString(){ return "Apple"; } }
    6.  
       
    7.  
      class Person { public String toString(){ return "Person"; } }
    8.  
       
    9.  
      class ClassName<T> {//主类,把你文件名改成ClassName.java
    10.  
       
    11.  
       
    12.  
      void show_1(T t){
    13.  
      System.out.println("show_1 "+ t.toString());
    14.  
      }
    15.  
       
    16.  
      <E> void show_2(E e){
    17.  
      System.out.println("show_2 "+e.toString());
    18.  
      }
    19.  
       
    20.  
      <T> void show_3(T t){
    21.  
      System.out.println("show_3 "+t.toString());
    22.  
      }
    23.  
       
    24.  
       
    25.  
       
    26.  
      public static void main(String[] args) {
    27.  
      ClassName<Fruit> o = new ClassName<Fruit>();
    28.  
      Fruit f = new Fruit();
    29.  
      Apple a = new Apple();
    30.  
      Person p = new Person();
    31.  
      System.out.println("show_1 演示________________________");
    32.  
      o.show_1( f );
    33.  
      o.show_1( a );
    34.  
      // o.show_1( p ); 楼主把这行代码去掉注释看一下,是不能编译通过的。因为在
    35.  
      // ClassName<Fruit>中已经限定了全局的T为Fruit,所以不能再加入Person;
    36.  
      System.out.println("show_2 演示________________________");
    37.  
      o.show_2( f );
    38.  
      o.show_2( a );
    39.  
      o.show_2( p );
    40.  
      System.out.println("show_3 演示________________________");
    41.  
      o.show_3( f );
    42.  
      o.show_3( a );
    43.  
      o.show_3( p );
    44.  
       
    45.  
      }
    46.  
      }
    47.  
      程序输出:
    48.  
      show_1 演示________________________
    49.  
      show_1 Fruit
    50.  
      show_1 Apple
    51.  
      show_2 演示________________________
    52.  
      show_2 Fruit
    53.  
      show_2 Apple
    54.  
      show_2 Person
    55.  
      show_3 演示________________________
    56.  
      show_3 Fruit
    57.  
      show_3 Apple
    58.  
      show_3 Person
  • 相关阅读:
    java加载类的方法1.classloader 2.class.forName()
    servlet与线程与jdbc connection的关系
    static再次深入理解
    多线程读某个共享变量有时候也要给读方法加锁
    多线程读一个全局变量要不要加锁?还是说只是当修改全局变量的时候才要加锁?
    接口耗时打印并统计
    Java从设计模式[本场比赛状态转换武器]状态分析(State)模式
    Openstack中间DVR Part1 -- 东西走向的交通处理
    写酷“大神”的公开信
    从反思谈论阵列和指针的几个问题,腾讯的笔名
  • 原文地址:https://www.cnblogs.com/lishanyang/p/15173739.html
Copyright © 2020-2023  润新知