I've noticed the strange behavior with package scope in Java and Android.
- I've created the package "java.util.concurrent" in my project
Next I added class TestClass in just created package
package java.util.concurrent; public class TestClass { public void testMethod() { ArrayBlockingQueue s = new ArrayBlockingQueue(1); // I can use items field. Object[] items = s.items; } }
The field items of ArrayBlockingQueue class has final package scope
public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { .... /** The queued items */ final Object[] items; .... }
Next, when I'm trying to compile the TestClass with usual Java Project (java 1.8.6x). I get success and it's logical.
But same class in Android project returns compile time error. The reason is 'my class hasn't access to this field'.
Have you any ideas?
UPDATE
The screen bellow displays the version of Android and code of Queue class