Я пытался включить два разных класса public в один файл .java, но это не сработало, и поиск в stackoverflow дал мне ответ, что два класса верхнего уровня не могут быть в одном файле .java.
Но тот же класс с доступом default проходит гладко, почему так?
Я могу это сделать, но я хотел знать, что именно происходит с компилятором, почему он пропускает класс доступа по умолчанию, а не общедоступные классы.
вы можете проверить это: stackoverflow.com/questions/3578490/…
Для доступа к общедоступным классам требуется полное имя (на основе пути к файлу), поскольку к ним можно получить доступ из любого места. Принимая во внимание, что частные классы пакета видны внутри пакета, и их не нужно импортировать. У меня нет ссылки, чтобы поддержать это, поэтому я не публикую это как ответ.
спасибо @arjayosma, но это не говорит о двух классах по умолчанию, находящихся в одном файле .java
См. docs.oracle.com/javase/specs/jls/se10/html/jls-7.html#jls-7.6, особенно условия в маркированном списке.
спасибо @Kartik, именно этого я и ожидал.




вы не можете создать 2 файла? может создать внутренний/вложенный класс?