Нужно ли компилировать внутренний класс, если изменения сделаны в другом внутреннем классе? - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть класс Aouter, у этого класса Aouter есть 2 внутренних класса, а именно Binner, Cinner. Я сомневаюсь, что класс Binner был изменен, поэтому класс Cinner также должен быть скомпилирован и перенесен на сервер?

Пожалуйста, спросите меня, если у вас есть какие-либо сомнения в моем вопросе.

Спасибо заранее.

Ответы [ 3 ]

1 голос
/ 09 сентября 2011

Я сомневаюсь, что вы можете скомпилировать их отдельно, но изменения одного другого внутреннего класса не должны быть затронуты. Поскольку они генерируют разные файлы .class, почему бы не использовать такой инструмент, как rsync, для развертывания ваших двоичных файлов (т. Е. перемещение на сервер ). Таким образом, необходимо перенести только изменения ..

1 голос
/ 09 сентября 2011

Если Cinner никак не зависит от Binner, его не нужно перекомпилировать. В противном случае я думаю, что лучше перекомпилировать (хотя это может быть не всегда необходимо, но все же лучше быть в безопасности). Но поскольку в общем случае внутренние классы компилируются вместе с содержащим их классом, на практике либо все, либо ни один из них не перекомпилируется.

0 голосов
/ 09 сентября 2011

Если внутренний класс использует внешний класс, он может изменить ситуацию. Это связано с тем, что компилятору необходимо генерировать методы доступа, когда внутренний класс обращается к закрытому члену внешнего класса. Это также означает, что если вы измените поле / метод / конструктор с не частного на закрытый, внутренний класс изменится с доступа к полю к вызову метода в байтовом коде.

...