Java Subclass $ - PullRequest
       51

Java Subclass $

0 голосов
/ 16 февраля 2011

Я новичок в Java и, возможно, задаю простой вопрос, который для некоторых может показаться глупым.

После того, как я скомпилировал свой основной класс Java, большинство подклассов отображается как $ в папке. Я копирую соответствующие классы и помещаю их в другое место для выполнения. Каждый раз, когда я делаю изменения в основной класс или один из подклассов, мне нужно копировать все связанные подклассы? или подойдет только копирование измененных?

Спасибо. Ник

Ответы [ 4 ]

1 голос
/ 16 февраля 2011

Имена классов, содержащие $, предназначены для вложенных / анонимных классов.

И посмотрите этот вопрос Stackoverflow .

Но это еще не все. Цитирование OP I copy the complied classes and put it on another location to execute. - похоже, вы должны автоматизировать эту задачу и использовать один из традиционных инструментов сборки Java, например Ant или Maven.

1 голос
/ 16 февраля 2011

Ник,

Вы имеете в виду вложенные классы ?Если это так, они будут содержать «$» в именах файлов скомпилированных классов.Если предположить, что изменения вашего кода касались только родительского класса, байт-код вложенного класса не должен был изменяться во время перекомпиляции.Он должен работать только для копирования основного файла .class.Тем не менее, очевидно, что это большая гарантия копировать все.

1 голос
/ 16 февраля 2011

Копирование изменений будет делать.

Обычно вы позволяете вашей IDE (например, Netbeans) / build system (например, Ant / Maven) делать это за вас. В качестве альтернативы вы можете создать исполняемый файл jar-файл , оставив вам только один файл для копирования.

0 голосов
/ 16 февраля 2011

Речь идет о подклассах (class Y extends X {}) или вложенных классах (class Y { class X {} })?

Упомянутое вами $, похоже, указывает на последнее, и в этом случае вам, вероятно, следует скопировать все, но если вы только создаете подклассы, тогда просто копирование скомпилированных версий файлов, которые вы изменили, вероятно, просто отлично.

...