泛型類的對象看看下面的類:構建從字符串中的Java
public class Range<T extends Comparable<T>>
{
public T lower;
public T upper;
public Range(String range){
Scanner scanner = new Scanner(range);
if(scanner.hasNextInt())
this.lower = scanner.nextInt();
if(scanner.hasNextInt())
this.upper = scanner.nextInt();
}
public String toString(){
return lower + " - " + upper;
}
}
在構造函數中,我試圖從一個字符串構造一個對象。創建對象包含的值在String範圍內。該字符串的格式類似於從toString方法返回的字符串。
這不會很容易,錯誤是在構造函數的最後兩行,它說:「類型不匹配:不能從int轉換爲T.」 Ofcourse ...因爲T類型由用戶決定,並且Scanner.nextInt()總是返回int。即使這可行,只有當T是int時,它纔會起作用。但是讓我們說,如果T只是int,那麼它就可以工作。
有什麼辦法可以用這樣的字符串構造這個類的對象,只有當T是int時。我懷疑是否有類似於C++中的類專業化的東西。
你得到我想要的,比方說那個字符串是「5 - 10」。我想低於5和10,他們需要整數。無論如何可能。
如果你只想要整數,爲什麼有一個泛型?只需將'lower'和'upper'都設爲'int'即可。 – Tunaki
爲什麼你要使用**泛型**,當你有'int'的特定類型? – developer
我已經爲擴展Comparable的所有類型創建了這個類,但是我知道這個構造函數只能在成員是int時才能工作。如果T是浮動的,那麼我想爲這種情況設置特殊的範圍(字符串範圍)。 – Scarass