我有一個泛型(IParameter)的列表(IParameterCollection),它應該是某個東西的參數。 這個泛型有一個「Type」,它包含實際參數的類型。在泛型列表中的返回值
enum Type {
TEST1(Integer.class),
TEST2(Double.class);
Class<?> _clazz;
private Type(Class<?> clazz) {
_clazz = clazz;
}
public Class<?> getClazz() {
return _clazz;
}
}
interface IParameterCollection {
IParameter<?> getParameter(Type type);
}
interface IParameter<T> {
public Type getID();
public T getValue();
}
是它在某種程度上可以調用
IParameterCollection#getParameter(Type.TEST1).getValue()
和接收整數類型的對象,而鑄造成一個?
我想做的事:
我有一個包含參數的效果。 如果我想更改我想調用getParameterCollection並接收IParameterCollection的參數。
IParameterCollection parameters = effect.getParameterCollection();
現在我要求收集所以根據不同型號,我給到該方法的具體參數
// should return the parameter with the generic type defined in the Type
IParameter<Integer> parameter = parameters.getParameter(Type.TEST1);
// should return Integer and not any unknown type
parameter.getValue();
的返回類型應該改變。
這真的不清楚。你想要做什麼?你能告訴我們實施嗎? – Happy
[限制類型安全異構容器中的鍵]的可能重複(http://stackoverflow.com/questions/21414076/limiting-keys-in-type-safe-heterogenous-containers)。還有相關的:[爲什麼不應該Java枚舉文字能夠具有泛型類型參數?](http://stackoverflow.com/questions/4290878/why-shouldnt-java-enum-literals-be-able-to-have -generic-type-parameters)和[Java枚舉和泛型](http://stackoverflow.com/questions/5108733/java-enums-and-generics)。 –
謝謝Paul,那就是我在尋找的東西。 http://stackoverflow.com/questions/21414076/limiting-keys-in-type-safe-heterogenous-containers – andre