package pkg;/** * Created by sanmao on 2016/6/29. */public class Static { /** * 從上篇講帶有限制萬用字元的部落格,我們看到totalArea方法是泛型方法,因為它能夠接收不同的參數 * 但是這裡沒有特定類型的參數表,正如 GenericMeoryCell類的聲明中所作的那樣,有時候特定類型很重要 * 這或許因為下面幾個原因 * 1.該特定類型用作傳回型別 * 2.該類型用於聲明一個局部變數 * 3.該類型作用在多餘一個型別參數中 * 如果是這樣,那麼必須要聲明一種帶有若干型別參數的顯示泛型方法 * 如下面的代碼 是顯示一種泛型static方法,該方法對值x在數組arr中進行一系列尋找,通過使用一種泛型方法 * 代替使用Object作為參數的非泛型方法,當在對象的數組中尋找Apple對象時我們能夠得到編譯時間錯誤 * 泛型方法特別像是泛型類,因為型別參數表可以使用相同的文法,在泛型方法中的型別參數位於傳回型別之前 * @param args */ public static void main(String[] args) { // Static s=new Static(); //非靜態方法就需要調用對象 LeiXing lx1=new LeiXing(1,2); LeiXing lx2=new LeiXing(3,4); LeiXing[] lx=new LeiXing[]{lx1,lx2}; System.out.println(Static.contains(lx,lx2)); //System.out.println(s.contains(lx, lx2)); //非靜態方法 就需要調用對象 } public static <AnyType> boolean contains(AnyType[] arr,AnyType x) { //public <AnyType> boolean contains(AnyType[] arr,AnyType x) { //聲明非靜態對象 int z=0; for (AnyType val : arr) { z++; if (x.equals(val)) { System.out.println(z); return true; } } return false; }}//這樣寫 LeiXing 就不是內部類了 ,內部類是不可以在公用類主方法中 new LeiXing()的 ,外部類就可以class LeiXing{ int x; int y; public LeiXing(){}; public LeiXing(int x,int y){ this.x=x; this.y=y; } public int GetX(){ return x; } public int GetY(){ return y; }}