Cambios en el acceso de variables para clases genéricas en Java 7

Aquí hay un ejemplo simple de algún código que compila usando Java 6, pero no compila en Java 7.

public class Test<T extends Test> {

  private final int _myVar;

  public Test(int myVar) {
    _myVar = myVar;
  }

  public int get(TestContainer<T> container){
    T t = container.get();
    return t._myVar;
  }

  private static class TestContainer<T extends Test> {
    private final T _test;
    private TestContainer(T test) {
      _test = test;
    }
    public T get(){
      return _test;
    }
  }
}

En Java 7, no se compila en elget(TestContainer<T> container) Método, con el error:

error: _myVar tiene acceso privado en Test

No entiendo por qué esto ya no se compila, en mi opinión debería serlo. La variablet es de tipoT, que debe extenderseTest. Se trata de acceder al campo._myVar de una instancia deTest desde dentro de la claseTest.

De hecho, si cambio el métodoget(TestContainer<T> container) a lo siguiente, compila (sin advertencias):

public int get(TestContainer<T> container){
  Test t = container.get();
  return t._myVar;
}
¿Por qué esto ya no compila?¿Fue este un error en Java 6? Si es así, ¿por qué?¿Es este un error en Java 7?

He tenido un google y he buscado en la base de datos de errores de Oracle, pero no he encontrado nada en este ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta