Извлеките всю строку из проекта Java

На самом деле это можно упростить до однострочного метода, используя троичный оператор

private bool CheckDaysDiff(int daysDiff)
{
    return (daysDiff < 0) ? false : true;
}

Как и другие, проблема с IDE заключается в том, что у вас нет окончание else {} для вашего условия, что отчасти связано с тем, что условие слишком сложное (нет необходимости проверять как нечто, равное 0, так и то, что также равно или больше 1, если оба возвращают true). Использование троичного оператора упрощает ваши условные выражения и должно облегчить проблему IDE.

12
задан ahmednabil88 21 December 2013 в 21:01
поделиться

5 ответов

Для завершения ответа Peter Kelley Вы могли бы считать для затмения IDE решением AST.

Вы могли бы затем записать программу AST, которые анализируют Ваш исходный код, и делает то, что Вы хотите.

Полный пример доступен в этой угловой статье затмения, также больше деталей в справке затмения.
И можно найти некоторые примеры в Списке 5 раздела "Implementation of in-place translation" Автоматизации встраивания Предметно-ориентированных языков в Eclipse JDT, вместе с несколькими примерами в проектах GitHub.

9
ответ дан 2 December 2019 в 04:43
поделиться

Eclipse действительно делает это автоматически. Щелкните правой кнопкой по файлу, выберите "Source", затем "Воплощают строки"

Это не делает точно, что Вы запросили (наличие строк в файле Constants.java как Строки), но используемый метод очень мощен действительно. Это перемещает их в файл свойств, который может быть загружен динамично в зависимости от Вашей локали. При наличии их в отдельном исходном файле Java, поскольку Вы предлагаете средства, у Вас или будут ВСЕ языки в Вашем приложении сразу или Вы поставите различные приложения в зависимости от локали.

Мы используем его для наших приложений, куда даже основной материал должен поставляться на английском и японском языке - наша более сложная поставка приложений с 12 языками - мы не небольшая компания по разработке программного обеспечения каким-либо образом :-).

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

Все, что затем необходимо сделать, изменяют класс Средства доступа для использования встроенных строк (в отдельном классе) вместо того, чтобы загрузить их во время выполнения.

21
ответ дан 2 December 2019 в 04:43
поделиться

Я полностью подтверждаю, какой Мир Diablo сказала. Мы используем ту функцию также.

При применении к файлу класса функция "Воплощает строки", создаст два файла, класс Messages.class и файл свойств messages.properties. Затем это перенаправит все прямые использования строковых литералов к вызову к Messages.get (Строковый ключ) и использование ключа, Вы ввели для строки в "Строковом мастере" Расширения.

BTW: что так плохо о файлах свойств? Как он сказал, Вы можете просто изменить файл свойств и не должны изменять класс, если необходимо изменить текст.

Другое преимущество - этот: способ извлечь строковые литералы в файл свойств оставляет Вас свободными перевести исходный язык на любом языке, который Вы хотите, не изменяя кода. Загрузчик файла свойств загружает файл выходного языка автоматически при помощи соответствующего файла с языком код ISO. Таким образом, Вы не должны волноваться о платформе, на которой работает Ваш код, это выберет соответствующий язык (почти) автоматически. См. документацию класса ResourceBundle для того, как это работает подробно.

1
ответ дан 2 December 2019 в 04:43
поделиться

Существуют некоторые серьезные основания, почему Вы не хотели бы делать это. Кроме того, что любой такой сгенерированный файл (я не знал о функции затмения) не собирается различать строки, которые Вы устанавливаете, например, как конструктор args в тестовых классах и вещах, которые Вы на самом деле хотите иметь как константы, большая проблема - то, что весь Ваш общедоступный статический финал будет скомпилированным в Ваши классы, и если Вы захотите изменить поведение классов, то необходимо будет изменить не только класс, содержащий константы, но и все, что ссылается на него.

1
ответ дан 2 December 2019 в 04:43
поделиться

Можно хотеть проверить исходный механизм преобразования Джекпота в NetBeans, который позволил бы Вам писать сценарий своих исходных преобразований.

0
ответ дан 2 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: