我有一個類,它應該只根據定義使用String參數。只聲明類型參數的Java字符串
所以我想過使用
class MyClass<T extends String>
但那麼編譯器會發出警告該字符串是終局的,我不能延長它
與
class MyClass<String>
然後嘗試和得到因爲參數String正在隱藏類String的警告。
我該怎麼辦?
我有一個類,它應該只根據定義使用String參數。只聲明類型參數的Java字符串
所以我想過使用
class MyClass<T extends String>
但那麼編譯器會發出警告該字符串是終局的,我不能延長它
與
class MyClass<String>
然後嘗試和得到因爲參數String正在隱藏類String的警告。
我該怎麼辦?
感謝有啓發性的評論:「你真的需要泛型」嗎?
我檢查了我的代碼,發現問題。我想用,因爲我實現一個接口類型參數有一個
interface MyInterface<T>
出於某種原因,我想我需要的那種類型放慢參數的實現類,如:
class MyClass<String> implements MyInterface<T>
但是,沒有意義。我需要做的是:
class MyClass implements MyInterface<String>
解決:)
在我看來,你並不需要仿製藥在所有。如果你不需要,你不應該過分複雜你的代碼。如果您的班級只能使用字符串參數工作,只需省略通用部分。
因此,而不是:
class MyClass<T extends String> {
T myMethod() {
//...
}
//...
}
只要做到:
class MyClass {
String myMethod() {
//...
}
//...
}
你真的需要一個*通用*類型嗎? – BalusC
好問題:)現在我的問題解決了。我將編輯我的帖子以解釋 – Ixx
在第二個示例中,您將創建一個名稱爲「String」的類型參數。您不*創建一個僅限於'String'的類型參數。事實上,第二個示例中的類型參數可以具有任何值。 – Jeffrey