如果說我有一些通用類,例如:爲某些類型的類型擴展泛型類?
public class Attribute<T> {
}
是否有可能現在有針對特定類型的具體方法?即爲某些類型的類擴展泛型類?
例如:
我要額外的方法添加到Attribute<String>
,但不是說Attribute<Integer>
。
如果說我有一些通用類,例如:爲某些類型的類型擴展泛型類?
public class Attribute<T> {
}
是否有可能現在有針對特定類型的具體方法?即爲某些類型的類擴展泛型類?
例如:
我要額外的方法添加到Attribute<String>
,但不是說Attribute<Integer>
。
沒有在Java中沒有這樣的直接可能性。
但你可以有StringAttribute
延伸Attribute<String>
,並增加了它,你想方法。您可以以依賴注入的方式創建一種工廠,這將構建例如Attribute<Integer>
爲Integer
和StringAttribute
爲String
。
不是直接的,但你可以做到這一點...
public class StringAttribute extends Attribute<String>
{
public String myNewMethod() ...
....
}
你可以做這樣的事情:
public abstract class Attribute<T> {
public abstract T getValue();
}
public class Attr1 extends Atrribute<String> {
@Override
public String getValue() {
return "smth"
}
}
創建一個抽象類,這將有通用型T
和抽象方法具有相同的通用類型。然後其他類可以通過指定真實對象而不是泛型來擴展它。
我認爲這個問題是問的是,可以實現不包括所有接口的API的 – David
你的類應該是抽象的:
public abstract class Attribute<T> {
void someMethod(T object);
}
,然後添加子類,如:
public AttributeString<T extends String> extends Attribute<T>{
void someMethod(T object){
}
}
你當然可以這樣做。 – bluevector
你可以給你的思維的具體方法的例子嗎?這可能是你真正需要的屬性與像「公共U doSomething(T ARG)」 –
David
類似的東西:屬性'可能有一個方法'.readToFile(字符串文件名)返回文件... ... –
Larry