java学习笔记(一)泛型

来源:互联网 发布:文都考研网络课程 编辑:程序博客网 时间:2024/04/27 06:28

泛型

泛型类型 class Person<T,V>

泛型的安全警告
在申明时指定泛型的类型,如果没指定就会在编译时出现警告,但仍然可以执行,因为没指定类型就都是Object类型
Person<String,Integer>p =new Person<String,Integer>();
Person p =new Person();

泛型与子类继承的限制(在泛型中不能用父类来接受子类)

泛型通配符(一般用在参数传递时)
public void fun(Person<?,?> p){//?为通配符

受限泛型
public void fun(Person<? extends Number> p)
?就只能是Number的子类或Number
public void fun(Person<? super String> p)
?就只能是String的父类或自己

泛型接口定义;

interface Info<T>{

public T getVar();

}

泛型接口实现的两种方式

在子类实例化时指定类型

class InfoImpl<T> implements Info<T>{}

在接口被继承时,直接指明类型

class InfoImpl impements Info<String>

泛型方法
定义泛型方法

静态方法不能访问类上定义的泛型

package cn.java.generics;public class GenericsDemo3 {public static void main(String[] args) {GenericsFun gf = new GenericsFun();System.out.print(gf.test("haoren"));System.out.print(gf.test(12));}}class GenericsFun{public <T> T test(T t){return t;}}
泛型数组
//作为参数传递public <T> void test(T a[]){for(int i=0;i<a.length;i++){System.out.println(a[i]);}}//返回值为数组public<T> T[] testReturn(T a[]){return a;}
泛型的嵌套
class PersonDemo<T,V>class Theach<P>Theach<PersonDemo> th = new Theach<PersonDemo>(new PersonDemo<String,Integer>("haorne",2));


0 0
原创粉丝点击