I'm running into the following compilation error (build 
9-ea+116-2016-04-28-175027.javare.4913.nc):

$ javac -modulesourcepath src -d out $(find . -name '*.java')
.src/test/client/Client.java:13: error: toString() in Object is defined in an 
inaccessible class or interface
      repository.findText(id).toString();

Besides the fact that the error message is somewhat confusing (how would 
toString() in Object ever be inaccessible?), this example raises a question on 
implied readability for me.

In this case, repository.findText() returns a type Text that normally requires 
implied readability. I deliberately omitted the 'public' from the corresponding 
requires clause, since I thought that calling toString() (or equals/hashCode) 
would be possible without having readability on the actual type. In the end 
it's just an invokevirtual on j.l.Object, right? Am I missing something here? 
It works fine when adding back the 'public' to the requires clause, obviously.



Thanks,
Sander

Reply via email to