java中的泛型

1.泛型的概述

是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型

2.格式

<数据类型> 只能是引用类型

3.好处

a:把运行时期的问题提前到了编译期间
b:避免了强制类型转换
c:优化了程序设计,解决了黄色警告线问题,让程序更安全

4.泛型的用法

a:泛型类

class  Demo{
   ObjectTool otool = new ObjectTool();
   otool.show("hello");//hello
}
class ObjectTool{
   public void show(T t){
         Systemo.out.println(t);
}
}

b:泛型方法

class  Demo{
   ObjectTool otool = new ObjectTool();
   otool.show("hello");//hello
}
class ObjectTool{
   public  void show(T t){
         Systemo.out.println(t);
}
}

c:泛型接口a

class  Demo{
   Animal  animal= new Dog();
   otool.show("hello");//hello
}
class Dog implements Animal{
   public  void show(String str){
         Systemo.out.println(str);
   }
}
public interface Animal{
   public  void show(T  t){
         Systemo.out.println(t);
   }
}

d:泛型接口b

class  Demo{
   Animal  animal= new Dog();
   otool.show("hello");//hello
}
class Dog implements Animal{
   public  void show(T  t){
         Systemo.out.println(t);
   }
}
public interface Animal{
   public  void show(T  t){
         Systemo.out.println(t);
   }
}

e:泛型高级通配符 ?、? extends E、? super E

class  Demo{
//匹配所有
Collection  collection1 = new ArrayList();
Collection  collection2 = new ArrayList();
Collection  collection3 = new ArrayList();
Collection  collection3 = new ArrayList();

//匹配 animal和animal的子类
Collection  collection1 = new ArrayList();
Collection  collection2 = new ArrayList();
Collection  collection3 = new ArrayList();

//匹配 animal和animal的父类
Collection  collection1 = new ArrayList();
Collection  collection2 = new ArrayList();
Collection  collection3 = new ArrayList();
}
class Animal{ 
}
class Dog extends Animal{}
class Cat extends Animal{}
 

                            
                        
                    
                    
                    

你可能感兴趣的:(java中的泛型)