Я просматривал справочник Spring Framework, в частности раздел «Конфигурация парсера», в котором говорится:
Объект конфигурации управляет поведением некоторых выражений компоненты. Например, если вы индексируете коллекцию и элемент по указанному индексу имеет значение NULL, SpEL может автоматически создать этот элемент. Это полезно при использовании выражений, состоящих из цепочки ссылок на свойства.
Экстракт ссылается на свойство autoGrowNullReferences, и, похоже, это так. предполагают, что если элемент по указанному индексу коллекции имеет значение NULL, SpEL заменит его инициализированным экземпляром (при условии, что его класс предоставляет конструктор по умолчанию).
Однако , если я добавлю ноль в поле List объекта MyBean, а затем ссылаться на первый элемент коллекции, SpEL выдает исключение SpelEvaluationException с сообщением об ошибке:
EL1007E: свойство или поле «id» не найдено по нулевому значению.
Несмотря на то, что описано в документации , SpEL нет замените нулевой элемент экземпляром AnotherBean по умолчанию, даже если класс предлагает конструктор без аргументов. Почему SpEL ведет себя так?
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AnotherBean {
private int id;
}
public class MyBean {
public List list = new ArrayList();
}
public class Main {
public static void main(String[] args) {
MyBean myBean = new MyBean();
myBean.list.add(null);
// enable auto grow null references
// disable auto grow collections
SpelParserConfiguration config = new SpelParserConfiguration(true, false);
// since AnotherBean has a default constructor,
// the null element should be replaced with a default instance
ExpressionParser parser = new SpelExpressionParser(config);
Expression expression = parser.parseExpression("list[0].id");
// Instead throws a SpelEvaluationException...
Integer i = expression.getValue(myBean, Integer.class);
System.out.println(i);
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... ll-element
Spel Auto Grow Null ссылки бросает SpelevaluationException с нулевым элементом ⇐ JAVA
Программисты JAVA общаются здесь
1737734976
Anonymous
Я просматривал справочник Spring Framework, в частности раздел «Конфигурация парсера», в котором говорится:
Объект конфигурации управляет поведением некоторых выражений компоненты. Например, если вы [b]индексируете коллекцию[/b] и [b]элемент по указанному индексу имеет значение NULL[/b], SpEL может автоматически создать этот элемент. Это полезно при использовании выражений, состоящих из цепочки ссылок на свойства.
Экстракт ссылается на свойство autoGrowNullReferences, и, похоже, это так. предполагают, что если элемент по указанному индексу коллекции имеет значение NULL, SpEL заменит его инициализированным экземпляром (при условии, что его класс предоставляет конструктор по умолчанию).
Однако , если я добавлю ноль в поле List объекта MyBean, а затем ссылаться на первый элемент коллекции, SpEL выдает исключение SpelEvaluationException с сообщением об ошибке:
EL1007E: свойство или поле «id» не найдено по нулевому значению.
Несмотря на то, что описано в документации , SpEL нет замените нулевой элемент экземпляром AnotherBean по умолчанию, даже если класс предлагает конструктор без аргументов. Почему SpEL ведет себя так?
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AnotherBean {
private int id;
}
public class MyBean {
public List list = new ArrayList();
}
public class Main {
public static void main(String[] args) {
MyBean myBean = new MyBean();
myBean.list.add(null);
// enable auto grow null references
// disable auto grow collections
SpelParserConfiguration config = new SpelParserConfiguration(true, false);
// since AnotherBean has a default constructor,
// the null element should be replaced with a default instance
ExpressionParser parser = new SpelExpressionParser(config);
Expression expression = parser.parseExpression("list[0].id");
// Instead throws a SpelEvaluationException...
Integer i = expression.getValue(myBean, Integer.class);
System.out.println(i);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79384904/spel-auto-grow-null-references-throws-spelevaluationexception-with-null-element[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия