2012-04-30 46 views
0

目前我正在學習泛型我這裏有這個通用類,Can Generic Class是方法/返回類型嗎?

package generics.lesson; 

public class Pair<T> { 

    private T first; 
    private T second; 

    public Pair(){ first = null; second = null; } 
    public Pair(T first, T second){ this.first = first ; this.second = second;} 

    public T getFirst() { return first; } 
    public T getSecond() { return second; } 

    public void setFirst(T first) { this.first = first; } 
    public void setSecond(T second) { this.second = second; } 
} 

到目前爲止,我明白這一點,但後來我碰到這個

public static Pair<String> minmax(String[] a) 
    { 
     if(a.length == 0 || a == null) return null; 
     String min = a[0]; 
     String max = a[0]; 

     for(int i = 1 ; i < a.length ; i++) 
     { 
      if(min.compareTo(a[i])>0) min = a[i]; 
      if(max.compareTo(a[i])<0) max = a[i]; 
     } 
     return new Pair<String>(min,max); 
    } 

來到什麼混淆我是這個

public static Pair<String> minmax(String[] a) 

問題

這怎麼可能?並可以泛型類是一個方法返回類型?

+0

它編譯? –

回答

2

如果這個工程

public T getFirst() { return first; } // returns a generic type 
public T getSecond() { return second; } // returns a generic type 

(你說你 「理解這一點」)

我希望這也行

public static Pair<String> minmax(String[] a) // returns a generic type 

BTW:在Java 1.4既不作品,在Java 5.0+中都可以工作。 ;)

+0

哦,我明白了。謝謝!在Java 1.4中是否有任何資源或泛型的例子?我只是好奇 – user962206

+1

在Java 1.4中,你需要寫一些類似'Pair/* String * /'或'Map/* * /',即它只是一個註釋。 ;) –

+0

噢好的,謝謝你的補充信息。 – user962206

4

是的,它可以。

爲什麼你認爲它不能?