2014-10-22 3 views
1

С обновлением Groovy я встретил действительно раздражающую проблему с новым добавленным зарезервированным словом: trait.Groovy: Можно ли оставить зарезервированное слово?

Потому что перед обновлением я реализовал много переменных с именем trait, а также закончил класс, расширенный от класса класса I.

пример кода, как:

class Dataseries extends Trait { 
    SingleTrait trait 
    ... 
    ... 
} 

это заняло бы очень много времени, чтобы переименовать все имена ...

Так я считаю, если можно отказаться от зарезервированного слова, которое Groovy использует?

+0

Возможно, usin g [groovy 'modify file in place'] (http://groovy.codehaus.org/Groovy+CLI), которую вы могли бы использовать, чтобы изменить имена переменных – Will

+0

, если вы действительно отчаялись, вы можете опрокинуть свой собственный groovy с удаленным ключевым словом. но я предполагаю, что IDE с надлежащей поддержкой рефакторинга приведет вас далеко (перед тем, как переключиться на новую оригинальную версию). – cfrick

ответ

0

Так что, если можно отказаться от зарезервированного слова, которое использует Groovy?

Нет, это невозможно.

Ваши классы с именем Trait, SingleTrait и т. Д. Не нужно будет переименовывать, потому что они не соответствуют case-sensitively.

+1

Да, но не имя класса, но многие переменные с именем trait, такие как «SingleTrait trait» будут обнаружены в качестве зарезервированного слова :( – Demonbane

+0

вы получите ошибку во время компиляции для этих переменных, и если у вас хорошая IDE (например IntelliJ), для переименования их не должно занимать более 5 минут. –

+0

теперь очень сложно выбрать новое имя для переменной «trait», что было бы лучше в соответствии с лучшей практикой Java codestyle? – Demonbane

3

Об этом шла речь, когда функция была введена

https://github.com/groovy/groovy-core/pull/343#issuecomment-38570360

И как уже говорили другие, ваши две прагматичные варианты:

  1. переименовывать переменные
  2. Палка с старой версии (до этого вы делаете # 1)
+1

* до этого вы делаете # 1 * - правильно сказано. :) – dmahapatro

+0

Мне нравится, как jimwhite играет адвоката дьявола – Will

+0

сейчас трудно выбрать новое имя переменной «trait», что было бы лучше в соответствии с лучшей практикой Java codestyle? – Demonbane

Смежные вопросы