泛型的常见用法

泛型的常见用法与注意事项

泛型 非泛型
1、避免了类型装换的麻烦;储存的是什么类型就只能使用该类型 ;2、把运行时的异常提升到了编译器 不用泛型,集合属于object类型可以使用任意类型
泛型是什么类型就只能储存什么类型的数据 不安全,会引发异常

泛型接口的第一种使用方式(直接通过实现类继承时选择泛型的类型)

package cn.itcase.day26.demo01.demo02.demo02;

public class Demo01Generic {
    
    
    public static void main(String[] args) {
    
    
        GenericInterfaceimpl1 gi = new GenericInterfaceimpl1();
        gi.method1("艾弗森");
    }
}


package cn.itcase.day26.demo01.demo02.demo02;

public interface GenericInterface<I> {
    
    
   public abstract void method1(I i);
}


package cn.itcase.day26.demo01.demo02.demo02;

public class GenericInterfaceimpl1 implements GenericInterface<String>{
    
    

    @Override
    public void method1(String s) {
    
    
        System.out.println(s);
    }
}

在这里插入图片描述
泛型接口的第二种使用方法(在实现类中还是使用泛型,等到创建对象时再确认要是的数据类型)

package cn.itcase.day26.demo01.demo02.demo02;

public class Demo01Generic {
    
    
    public static void main(String[] args) {
    
    
        /*GenericInterfaceimpl1 gi = new GenericInterfaceimpl1();
        gi.method1("艾弗森");*/
        GenericInterfaceipml2<Integer> gi = new GenericInterfaceipml2<>();
        gi.method1(123124);
    }
}

package cn.itcase.day26.demo01.demo02.demo02;

public class GenericInterfaceipml2<M> implements GenericInterface<M> {
    
    
    @Override
    public void method1(M m) {
    
    
        System.out.println(m);
    }
}
package cn.itcase.day26.demo01.demo02.demo02;

public interface GenericInterface<I> {
    
    
    public abstract void method1(I i);
}

在这里插入图片描述
泛型的上限限定与下限限定;

在这里插入图片描述
Integer extent Number extent Object
上限限定:使用的泛型只能是E类的子类或本身;
下限限定:使用的泛型只能是E类的父类或本身;

猜你喜欢

转载自blog.csdn.net/weixin_52162723/article/details/113822351