java 集合重要概念(简单了解泛型)

1:泛型

泛型:可以理解为未知的数据型   重点理解:类<T>   这个<T>就好比如  是 “类”的别名!!!!!!

1-1 使用泛型方式创建集合

创建集合是默认的类型为Object 弊端就是会出现想不到的异常 比如:一个object集合中 既放了狗 又放了 人 这个集合就不纯净了!

List  list = new AarryList()  尽量不要这样去创建集合! ×××××××××   可能会在运行期间报异常!

List<String> list = new ArrayList<String>();       这样会将异常从运行期提前到编译期,提早发现异常!

类上使用泛型

//泛型简单易懂的实例

public class FanXingDemo<E> {
    private E name;

    public E getName() {
        return name;
    }

    public void setName(E name) {
        this.name = name;
    }
}
//测试代码

public
class TestDemo { public static void main(String[] args) { //设成为String类型 FanXingDemo<String> str = new FanXingDemo<String>(); str.setName("hello wo shi String"); System.out.println(str.getName()); //结果 hello wo shi String //设成为Integer类型 FanXingDemo<Integer> intt = new FanXingDemo<Integer>(); intt.setName(1111); System.out.println(intt.getName()); //结果1111 } }

方法上的泛型使用

//注意方法上使用泛型的语法: public <T> void/int/String/对象 方法名()      //静态的方法创建格式 public static<T> void/int/String/对象  方法名()

public class FanXingDemo{
    //方法上使用泛型!
    public <T> void test(T t){
        System.out.println(t);
    }
}

//测试代码
       FanXingDemo f  = new FanXingDemo();
        f.test(1);  //可以是整型
        f.test("hello 我是字符串");  //可以是字符串
        f.test(new Baozi());   //可以是对象

接口上使用泛型

//第一种实现 实现接口时就实现
//public class FanXingInterface_Impl implements FanXingInterface<String> {
//    @Override
//    public void getAll(String s) {
//        
//    }
//}



//第二种方式 由创建对象的时候去确定使用的类型 
public class FanXingInterface_Impl<T> implements FanXingInterface<T>{

    @Override
    public void getAll(T t) {
        
    }
}

//测试代码
 //FanXingInterface_Impl<String> s = new FanXingInterface_Impl<String>();

泛型的通配符 ? 注意!!只能作为方法的参数使用!!!!

坚持
原文地址:https://www.cnblogs.com/gaoSJ/p/12841859.html