我已經注意到Java和Android中包範圍的奇怪行爲。Java和Android中的包範圍訪問
- 我已經在我的項目
下一頁創建包「的java.util.concurrent。」我補充類TestClass的在剛剛創建包
package java.util.concurrent; public class TestClass { public void testMethod() { ArrayBlockingQueue s = new ArrayBlockingQueue(1); // I can use items field. Object[] items = s.items; } }
ArrayBlockingQueue類的領域的項目有最後包範圍
public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { .... /** The queued items */ final Object[] items; .... }
接下來,當我試圖用通常的Java Project(java 1.8.6x)編譯TestClass時。我獲得成功,這是合乎邏輯的。
但同一類中的Android項目回報編譯時錯誤。原因是「我的班級無法訪問此字段」。
你有什麼想法嗎?
UPDATE
屏幕波紋管顯示的Android版本和Queue類的代碼
從哪裏可以訪問它?兩種情況下都是一樣的套餐? –
什麼版本的android? –
我添加了屏幕。版本的API是23 – kemenov