Такая конструкция
int pages ;
if (pages = null) {
pages = 25;
} else {
pages = Integer.parseInt(request.getParameter("pages"));
}
выдает ошибку в строке if (pages = null) {
из-за несовпадения типов:
incompatible types: <null> cannot be converted to int
incompatible types: int cannot be converted to boolean
Есть ли возможность сравнить целое число на значение null, или я пишу глупость?
Если вам нужно исправить код, то это будет так.
(исправленный исходный код от автора)
int pages;
if (pages == 0) {
pages = 25;
} else {
pages = request.getParameter();
}
Integer integer = pages;
int - это примитивный тип данных, поэтому нужно его сравнивать не с null
, а 0
. Так как в примитивных типах хранятся не ссылки на область в памяти, где лежат объекты, а сами значения.
Может вам по началу будет удобно запомнить: все примитивные типы начинаются с маленькой буквы (boolean, int, double, float), а ссылочные с большой.
(исправленный исходный код из комментариев) - спасибо pavlofff
Integer pages;
try{
pages = Integer.parseInt(request.getParameter("pages"));
} catch (Exception e){
pages = 25;
}
Есть ли возможность сравнить целое число на значение null?
Нельзя. Примитивные типы не могут принимать значение null. Соответственно, сравнивать с null их нельзя.
Как вариант, можно привести число к объекту-обертке:
Integer pages = null;
if(pages == null) {
...
Приведение к null — не единственная проблема в Вашем примере:
pages
— локальная переменная, то компилятор не даст ее использовать до того как ей присвоено значение, если же pages
— поле класса, то ему будет присвоено значение по умолчанию — 0;==
, Вы же пытаетесь присвоить pages
значение и результат присвоения использовать в качестве аргумента if
. Т.к. if
принимает буллево значение, это приводит ко второй ошибке.Как меняется крипторынок и к чему готовиться владельцам криптообменников
Никто не подскажет как можно правильно конвертить в RealmList<> например Map<String, String> ну или List<SomeClass>?
В приложении для android у меня есть три Activity, Activity1, Activity2, Activity3 все они открываются в таком же порядкеЯ пытаюсь передать из Activity1 данные ArrayList...
Собственно он не хочет работать: