泛型

作者: 小李同学今天博学了吗 | 来源:发表于2020-08-19 08:01 被阅读0次

    作用:通过泛型可以在编译时期完成一些类型转换的工作,避免在运行时出现classCastException

    好处:1.类型安全,避免了classCastException
    2.消除了代码中许多的强制类型转换
    3.为较大的优化带来了可能

    泛型的运用的地方

    1.泛型类

    public class Container<K,V>{
         private K key;
         pirvate V value;
        
          public Container(K k,V v){
              this.key = k;
              this.value = v;
          }
          
        public K getkey() {
            return key;
        }
        public V getValue() {
            return value;
        }
        public void setKey() { 
            this.key = key;
        }
        public void setValue() { 
            this.value = value;
        }
    
    }
    

    2.泛型方法,在类和接口都没有使用泛型的时候对方法使用泛型

    public class Teset{
          public static <T> void out(T t){
              System.out.println(t);
        }
          public static void main(Stirng []args){
              out(1);
              out("娃哈哈");
          }
    }
    

    3.泛型构造器

    public class Person{
        public <T> Person(T t){
          System.out.println(t);
        }
    }
    
    public static void main(String[] args){ 
    //隐式
        new Person(22);
    //显示
    new<String> Person("hello");
    }
    

    类型通配符

    1.上限通配符: List< ? extends Shape>
    即List里面的对象只能是继承自Shape的对象
    2.下限通配符: List<? super circle>
    即List里面的对象必须是circle得父类或接口

    类型擦除

    因为泛型只作用与编译阶段,正确校验出泛型结果后就会将泛型类型擦除,所以不能将静态变量声明为泛型的,因为系统并不会生成泛型类

    相关文章

      网友评论

          本文标题:泛型

          本文链接:https://www.haomeiwen.com/subject/ficljktx.html