爲int我割我的牙齒上的Java(長時間C++這裏的傢伙),和我遇到一點問題Integer類轉換成原始類型爲int的。我已經看到了幾個解決方案,但沒有一個可以工作。整數轉換在Java泛型類
是什麼讓我的情況獨特的是轉換需要一個泛型類裏面的地方(整數作爲泛型參數)。該類擴展JProgressBar並繼承自定義(模板化)接口TaskObject。
代碼ProgressBar類:
private class ProgressBar<Integer> extends JProgressBar
implements TaskObject<Integer> {
@Override
public void update(Integer val) {
System.out.println("pbar updating to " + val);
setValue(val);
}
}
代碼TaskObject接口:
interface TaskObject<T> {
void update(T value);
}
的進度instacne作爲到的SwingWorker螺紋的類型TaskObject的傳遞和更新從該線程(因此update()函數)。
不幸的是,的setValue不會採取的類型整數,並使用(INT)失敗,與整數級轉換方法轉換沿。最後的具體錯誤提示「整數擴展在類... ProgressBar中聲明的對象」。
似乎很明顯,我使用Integer作爲通用參數的事實使編譯器在調用JProgressBar.setValue()時感到困惑......我對如何解決這個問題有一半想法,但好像而收效甚微很多工作,所以我想我會扔在那裏,看看別人有意見......
你試過['val。的intValue()'](http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#intValue())? – Nikhil
這是一個通用類。 Java中沒有模板,並且template!= generic。 – EJP