package com.java.b; import org.junit.Test; /** * Java 方法 自定義泛型 * @author TS * */ public class IGenericMethod { /** * 方法聲明泛型 * <T>:使用這個泛型T * @param t :聲明一個泛型T * 要先聲明<T>在使用T */ public <T> void one(T t){ } /** * 方法聲明泛型 * 傳統的未使用泛型的方法 * @param t * @return */ public Object two(Object t){ return t; } /** * 方法聲明泛型 * 使用泛型獲取返回值就不須要強轉 * @param t * @return */ public <T> T generic(T t){ return t; } /** * 方法聲明泛型 * 聲明多個泛型 * @param t * @return */ public <T,E> T manyGeneric(T t,E e){ return t; } @Test public void test(){ IGenericMethod igeneric = new IGenericMethod(); //傳統 String s = (String) igeneric.two("字符串向上轉型爲Object"); //須要強轉 System.out.println(s); //泛型 String s1 = igeneric.generic("使用泛型的字符串不須要強轉"); System.out.println(s1); } }
Java類自定義泛型java
若是每一個方法上都自定義泛型會很麻煩spa
因此就能夠在Java類上聲明泛型,就能夠做用在整個類上了code
靜態方法上使用泛型要從新在靜態方法上聲明泛型,類聲明的泛型無效字符串
package com.java.b; import org.junit.Test; /** * @author TS */ public class IGenericClass<T,E> { public void one(T t){} public Object two(Object t){ return t; } public T generic(T t){ return t; } public T manyGeneric(T t,E e){ return t; } @Test public void test(){} }