关于Java的泛型方法

来源:互联网 发布:js将字符串分割成数组 编辑:程序博客网 时间:2024/06/02 00:28

文章参考自:http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html


有泛型方法还有泛型类。

类似于如下代码定义的泛型是泛型方法 :


package com.test.GenericTest;

import java.util.ArrayList;
import java.util.List;

package com.test.GenericTest;import java.util.ArrayList;import java.util.List;public class GenericFoo<T>{private T value ;public T getValue(){return value;}public void setValue(T value){this.value = value;}public static void main(String[] args){GenericFoo<String> foo1 = new GenericFoo<String>();List<String>  list = new ArrayList<String>();foo1.setValue("helloworld");System.out.println(foo1.getValue());}}

上述代码定义了一个GenericFoo<String>类   。


类似下面定义的方式的叫泛型方法


public <T> T[] toArray(T[] a) {        if (a.length < size)            // Make a new array of a's runtime type, but my contents:            return (T[]) Arrays.copyOf(elementData, size, a.getClass());System.arraycopy(elementData, 0, a, 0, size);        if (a.length > size)            a[size] = null;        return a;    }

返回类型T[]   前面必须加上<T> 声明 为 泛型方法。 


  泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型。 注意留心:泛型方法调用的时候指明了泛型T是什么类型的。

而泛型类是在类的初始化的时候指明泛型T的类型的  例如 ArrayList<String> list = new ArrayList(); 这样是声明了一个泛型类。




0 0
原创粉丝点击