#java #android #ternary-operator
#java #Android #ternary-operator
Вопрос:
String colorString = myObject.getColor(); // "0000ff"
colorString = colorString == null ? "#44FF0000" : "#44" colorString;
int myColor = Color.parseColor(colorString); // Length must be at least 1
Color.parseColor(String colorString)
из android.graphics
библиотеки аннотируется с @Size(min=1)
помощью from android.annotation.Size
. Почему компилятор считает, что результирующая строка приведенной выше троичной операции может быть пустой, в то время как приведенный ниже код работает?
String colorString = myObject.getColor(); // "0000ff"
if (colorString == null) {
colorString = "44FF0000";
} else {
colorString = "#44" colorString;
}
int myColor = Color.parseColor(colorString); // all's good
Комментарии:
1. какую ошибку компилятора вы получаете?
2. библиотека аннотируется с помощью @Size(min=1) из модели проверки Bean. … нет, с
android.annotation.Size
3. моя вина, ошибка компилятора такова
Length must be at least 1
4. Это скорее Ворсистый намек
5. Я бы создал отчет об ошибке, а затем либо подавил предупреждение, либо использовал инструкцию if / else .