Странное поведение с Object.intValue ()
6040 просмотра
2 ответа
Я борюсь с проблемой, которую я не могу понять, почему она не работает. Как передать переменную через double obj
и преобразовать в int
?
Почему он не работает в верхнем фрагменте кода, а работает в нижнем фрагменте кода под строкой?
Похоже, единственное отличие заключается в добавлении дополнительной переменной, которая также обозначается как double
?
//Converting double to int using helper
//This doesn't work- gets error message
//Cannot invoke intValue() on the primitive type double
double doublehelpermethod = 123.65;
double doubleObj = new Double( doublehelpermethod);
System.out.println("The double value is: "+ doublehelpermethod.intValue());
//--------------------------------------------------------------------------
//but this works! Why?
Double d = new Double(123.65);
System.out.println("The double object is: "+ doubleObj);
Автор: UKDataGeek
Источник
Размещён: 13.11.2019 11:31
Ответы (2)
3 плюса
Это double
примитивный тип, а Double
обычный Java-класс. Вы не можете вызывать метод примитивного типа. intValue()
Метод, однако , доступен на Double
, как показано на Javadoc
Еще немного чтения об этих примитивных типах можно найти здесь
Автор: Robin Размещён: 25.12.2011 09:341 плюс
Вы находитесь в верхнем фрагменте, пытаясь присвоить объект Double типу примитива, подобному этому.
double doubleObj=new Double( doublehelpermethod);
что, конечно, сработает из-за распаковки (преобразования типа-обертки в эквивалентный примитив), но проблема, с которой вы сталкиваетесь, - разыменование doublehelpermethod
.
doublehelpermethod.intValue()
невозможно, потому что doublehelpermethod
это переменная примитивного типа, которую нельзя связать с помощью точки. .
См. автобокс
Вопросы из категории :
- java В чем разница между int и Integer в Java и C #?
- java Как я могу определить IP моего маршрутизатора / шлюза в Java?
- java Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- java Как округлить результат целочисленного деления?
- java Преобразование списка <Integer> в список <String>
- java Почему я не могу объявить статические методы в интерфейсе?
- typing Является ли рубин сильно или слабо типизированным?
- typing Visual Basic Typing и вопрос о литье
- typing Странное поведение с Object.intValue ()
- typing Означает ли «нетипизированный» также «динамически типизированный» в академическом мире CS?
- typing Как мне указать, что возвращаемый тип метода такой же, как и сам класс?
- typing Почему size_t существует в C / C ++ и может / должен быть заменен?
- autoboxing Java: массив примитивных типов данных не блокируется автоматически
- autoboxing Как преобразовать int [] в List <Integer> в Java?
- autoboxing Как правильно сравнить два целых числа в Java?
- autoboxing Почему int num = Integer.getInteger ("123") генерирует исключение NullPointerException?
- autoboxing NullPointerException с автобоксом в троичном выражении
- autoboxing Булевы, условные операторы и автобокс