沒有在這裏Java泛型 - 意外的界限
public class MyList<E extends Number> extends ArrayList<E> {
}
問題。
未收到的界限。這是什麼意思?爲什麼它錯了?感謝幫助。
public class MyList<E extends Number> extends ArrayList<E extends Number> {
}
沒有在這裏Java泛型 - 意外的界限
public class MyList<E extends Number> extends ArrayList<E> {
}
問題。
未收到的界限。這是什麼意思?爲什麼它錯了?感謝幫助。
public class MyList<E extends Number> extends ArrayList<E extends Number> {
}
class MyList<E extends Number>
是可以的,因爲你聲明類型參數,所以你必須給它一個名稱(E
),你可以選擇將其聲明爲界(extends Number
)。
在extends ArrayList<E>
,而不是你只需要「使用」類型參數:與「<E>
」你指的是你的類中聲明的參數,它綁定在其聲明中已經給出。 「<? extends Number>
」(?
代替E
)也會被編譯器接受(儘管它不是你想要的)。相反,「<E extends Number>
」被視爲一個類型參數聲明,所以它是一個編譯錯誤。
public class MyList<E extends Number> extends ArrayList<E> {
private static final long serialVersionUID = -1025575227555594680L;
}
這應該工作,沒有編譯錯誤,甚至沒有警告。讓我知道你是否仍然有同樣的錯誤。
你能解釋一下你什麼時候得到這個錯誤嗎?這是編譯錯誤嗎?或者它是在實例化這個類或什麼時候出現的? –
編譯錯誤 – hasNoPatience