FXMLLoader
создает экземпляры типов посредством отражения. Это означает, что у класса должен быть либо конструктор, параметры которого помечены @NamedArg
, либо конструктор с нулевыми параметрами. @NamedArg
решает проблему имен параметров, которые не обязательно сохраняются в байтовом коде, как лучше объяснено в в этом ответе . Остальные атрибуты будут установлены на объекте в соответствии с правилами, указанными в этого раздела из Введение в FXML . Подводя итог, можно сказать, что атрибут / элемент FXML должен иметь соответствующий установщик свойств, свойство только для чтения List
или свойство только для чтения Map
в целевом классе.
Что все это значит для вашего вопроса:
StringConverter
. @NamedArg
аннотированные параметры конструктора. StringConverter
. Глядя на исходный код, не похоже, что ни одна из реализаций StringConverter
использует аннотацию @NamedArg
. Однако они часто предоставляют конструктор без аргументов. Это позволит вам использовать их, но вы можете потерять возможность их настройки. Например, при использовании LocalDateStringConverter
вы не сможете настроить формат.
Тем не менее, вы всегда можете создать фабричный класс и использовать fx:factory
в файле FXML.
public class Converters {
public static StringConverter myAwesomeConverter() {
DateTimeFormatter formatter = ...;
return new LocalDateStringConverter(formatter, formatter);
}
}
Или, если вам не нужен пользовательский форматер, вы можете просто использовать конструктор без аргументов конвертера.
Я не сделал многого с определением конфигурационного файла MSBUILD, но я сделал сборки различных конфигураций с помощью пакетного файла как это
msbuild /v:n /p:Configuration=Release "Capture.sln"
msbuild /v:n /p:Configuration=ReleaseNoUploads "Capture.sln"
, я определил конфигурация ReleaseNoUploads в Visual Studio.
Вот то, что я должен был сделать для того (это - Visual Studio 2005):
Несомненно, у Вас может быть столько сделанных на заказ конфигураций, сколько Вы хотите определить. Посмотрите этот связанный вопрос для того, как установка могла бы посмотреть.
, Как условно развернуть app.config на основе конфигурации сборки?
Обратите внимание на это, когда 'в Visual Studio', $ (Конфигурация) и $ (Платформа) будут всегда устанавливаться VS с помощью материала Менеджера конфигурации в раскрытии наверху. Принимая во внимание, что, если Вы хотите установить эти значения с помощью msbuild из командной строки, необходимо передать в значениях явно (как в ответе @MarkBiek).
(Большинство шаблонов проекта VS 'примет значение по умолчанию в' значении для Конфигурации/Платформы, так, чтобы можно было использовать командную строку MSBuild, не определяя эти значения явно. Это хорошо, но заставляет эти две полезной / общей собственности казаться немного более волшебной/странной, чем они на самом деле.)