Ответ 1
Вместо использования int
вы можете использовать Integer
(Integer javadoc), потому что это обнуляемый класс Java.
Я хочу преобразовать веб-форму в модель на Java.
В С# я могу написать это:
<input name="id" value="" type="text"/>
public class Test
{
public int? Id{get;set;}
}
id
может быть нулевым.
Но в Java при использовании struts2 он выдает исключение:
Method "setId" failed
Итак, как записать этот случай в Java?
Вместо использования int
вы можете использовать Integer
(Integer javadoc), потому что это обнуляемый класс Java.
Вы можете использовать Integer
, который является ссылочным типом (классом) в Java и, следовательно, имеет значение nullable.
Int32
(или int
) - это структура (тип значения) в С#. Напротив, Integer
в Java - это класс, который обертывает int
. Экземпляры ссылочных типов могут быть null
, что делает Integer
законным вариантом.
Nullable<T>
в .NET дает вам аналогичные параметры, потому что он позволяет обрабатывать тип значения, такой как тип с нулевым значением. Тем не менее, он по-прежнему отличается от Java Integer
, поскольку он реализован как структура (тип значения), который можно сравнить с null
, но фактически не может содержать истинную нулевую ссылку.
В Java просто используйте Integer
вместо int
. Это, по существу, значение null. Я не слишком хорошо знаком с Struts, но использование Integer
должно позволить вам опустить значение.