Что делает «статический» в этом файле, sample.groovy?groovy static class
static class froob {
}
Кодовый код компилируется с использованием «статического» или без него.
Что делает «статический» в этом файле, sample.groovy?groovy static class
static class froob {
}
Кодовый код компилируется с использованием «статического» или без него.
Нет абсолютно никакой разницы. Статичность в этой ситуации игнорируется.
Чтобы проверить, я создал класс groovy и передал результат «javap -verbose StaticTest» в файл. Затем поставьте «static» перед классом def и передайте его во второй файл. Затем я разделил два файла. Единственными отличиями были те уникальные идентификаторы, которые связаны с длинным идентификатором класса, который генерируется новым для каждого класса.
Вы имеете в виду статический класс или статический метод «main» в статическом классе?
Ключевое слово "static" означает, что распределение начинается, когда программа начинается и заканчивается, когда программа заканчивается. Другими словами, нет возможности программно создать экземпляр класса «froob», но экземпляр автоматически создается, когда программа существа и будет существовать до окончания вашей программы.
В контексте вашей небольшой программы-образца это фактически бессмысленно. Только «основной» класс должен быть статичным, поскольку он должен «существовать» до того, как какой-либо код в программе был выполнен.
В Java только внутренний класс может быть статическим. До Groovy 1.7 внутренние классы запрещены, и объявление статического класса верхнего уровня не влияет.
В Groovy 1.7+ Я ожидаю, что статические внутренние классы будут иметь ту же семантику, что и в Java. Объявление класса верхнего уровня, вероятно, не повлияет (или будет запрещено компилятором).
Humm. Это, кажется, работает/выполнить с помощью Groovy консоли статического класс froob { статической силы основных (String [] е) { Println "да" Println нового froob(). Class.name }} –
Ба! глупое форматирование комментариев
–