Иногда эта идиома может быть разумной - например, представьте, что у вас есть класс UploadHandler
(или что-то в этом роде), который может возвращать статус из загрузки. Мне представляется вполне возможным реализовать этот статус как enum - и, поскольку enum (например, UploadStatus
) явно «принадлежит» классу UploadHandler, кажется, можно объявить его в том же исходном файле. (Это, конечно, предполагает, что он должен быть только закрытым для пакета - если он действительно общедоступный, его нужно объявить в своем собственном файле, что, вероятно, имело бы смысл, если бы оно больше не было внутренним).
Как это бывает, в этом случае я бы, вероятно, сделал бы статический внутренний класс, чтобы сделать отношения более явными. Но объявление нескольких классов в одном и том же исходном файле не всегда плохо и иногда может помочь читабельности, устанавливая ожидание того, что это вспомогательный класс, граничный с тривиальным. (К тому же, я не думаю, что такие классы должны делать что-то особенно сложное или неожиданное.)