#java #nullpointerexception #null #vaadin #vaadin7
#java #Исключение nullpointerexception #null #vaadin #vaadin7
Вопрос:
У меня возникли некоторые проблемы с SQLContainer от Vaadin. Имя моего SQLContainer — это agentContainer.
Теперь, если я выполню следующий код:
System.out.println(agentContainer.getItemIds());
System.out.println(agentContainer.containsId("3"));
System.out.println(agentContainer.containsId(new RowId(new Object[]{"3"})));
System.out.println(agentContainer.getItem((new RowId(new Object[]{"3"}))));
System.out.println(agentContainer.getItem("3"));
Я получаю:
[1, 2, 3, 4, 5, 6, 8, 9, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]ложь
Верно
null
null
Я совершенно не понимаю, почему contains
возвращает true, но getItem
возвращает null.
Кто-нибудь может помочь мне определить, почему это происходит?
Комментарии:
1. Является ли ключевое поле числом? Мне кажется, что это целые числа. Попробуйте system.out.println(agentContainer.GetItem(3))
2. Вы правы. Это решило проблему. Хотя мы можем поместить туда общие объекты, они чувствительны к базовому типу поля.
Ответ №1:
Оказывается, что GetItem может быть присвоен любому объекту, который вам нравится, но тип объекта должен соответствовать базовому полю. Для целых чисел поставщика и для строковых типов предоставляется строка.