0
我有一個類,有一個原始類型成員變量名爲Argument<T>
。該類只是簡單地包裝這種類型,並且通過構造函數以通用方式分配所有值,因爲在編譯時傳遞給構造函數的參數的類型和Argument
的類型是未知的。Java泛型:如何處理原始類型成員變量並避免警告?
public class ArgumentWrapper {
private Argument argument;
public ArgumentImplementation(Class<?> type, String name,
Object defaultValue, Set<?> allowedValues,
Comparable<?> lowerBound, Comparable<?> upperBound) {
argument = new Argument<>(type);
argument.setName(name);
argument.setDefaultValue(defaultValue);
argument.setAllowedValues(allowedValues);
argument.setLowerBound(lowerBound);
argument.setUpperBound(upperBound);
}
// some getters...
}
現在在我的代碼中,我得到了很多警告說
Argument is a raw type. References to generic type Argument<T> should be
parameterized
在成員和
Type safety: The method setDefaultValue(Object) belongs to the raw type Argument.
References to generic type Argument<T> should be parameterized
在構造函數的參數被分配給它。
我知道我不能將成員更改爲private Argument<?> argument;
,因爲那時我在構造函數中將泛型參數分配給它時會出錯。
您對此有什麼建議?如何在不引入錯誤的情況下避免這些警告?我如何處理泛型類型成員變量different/better?
你的ArgumentWrapper,因爲它包裝了一個泛型tyupe,也應該是一個泛型類型。 –
聽起來合法。那麼,我將如何執行這個在我的情況?如果我只是簡單地將該類更改爲'public class ArgumentWrapper',並將該成員變量更改爲'private Argument 參數;'我在構造函數中引入了錯誤。我不知道如何處理它們。我會接受答案,告訴我如何在我的例子中做到這一點。 –
Terry
如何向我們展示您的更新代碼,並顯示完整且準確的錯誤消息? –