Object to int java

Как я могу привести объект к int в Java?

17 ответов

Если вы уверены, что этот объект является целым Integer :

Или, начиная с Java 7, вы можете эквивалентно написать:

Остерегайтесь, он может генерировать ClassCastException если ваш объект не является Integer и NullPointerException если ваш объект имеет значение null .

Таким образом, вы предполагаете, что ваш объект является целым числом (обернутый int) и распаковываете его в int.

int является примитивом, поэтому он не может быть сохранен как Object , единственный способ состоит в том, чтобы int рассматривался / был упакован как Integer затем сохранялся как Object .

Если ваш объект является String , то вы можете использовать метод Integer.valueOf() чтобы преобразовать его в простое int:

Он может NumberFormatException если ваш объект на самом деле не является String с целым числом в качестве содержимого.

Ресурсы :

На ту же тему:

Предполагая, что объект является объектом Integer , вы можете сделать это:

Если объект не является Integer , то вы должны определить тип и преобразовать его на основе его типа.

Сценарий 1: простой случай

Если гарантируется, что ваш объект является целым Integer , это простой способ:

Сценарий 2: любой числовой объект

В Java Integer , Long , BigInteger и т. Д. Все реализуют интерфейс Number который имеет метод с именем intValue . Любые другие пользовательские типы с числовым аспектом также должны реализовывать Number (например, Age implements Number ). Так что вы можете:

Сценарий 3: разобрать числовой текст

Когда вы принимаете пользовательский ввод из командной строки (или текстового поля и т. Д.), Вы получаете его в виде String . В этом случае вы можете использовать Integer.parseInt(String string) :

Если вы получаете ввод как Object , вы можете использовать (String)input или, если он может иметь другой текстовый тип, input.toString() :

Сценарий 4: хэш идентичности

В Java нет указателей. Однако Object имеет реализацию по умолчанию, похожую на указатель, для hashCode() , которая непосредственно доступна через System.identityHashCode(Object o) . Так что вы можете:

Обратите внимание, что это не реальное значение указателя. Адрес памяти объектов может быть изменен JVM, в то время как их хеши идентичности сохраняются. Кроме того, два живых объекта могут иметь одинаковый хеш-идентификатор.

Вы также можете использовать object.hashCode() , но он может быть специфичным для типа.

Сценарий 5: уникальный индекс

В тех же случаях вам нужен уникальный индекс для каждого объекта, например, для автоматического увеличения значений идентификаторов в таблице базы данных (и в отличие от идентификатора, который не является уникальным). Простой пример реализации для этого:

Класс Integer является контейнером для типа данных int . Этот класс включает в себя методы преобразования значений из строки в объект Integer . Данное руководство содержит полную информацию о том, как использовать класс Integer в Java , его атрибуты и методы .

Синтаксис класса Integer

Совместимость с версиями JDK

Необходима JDK версии 1.0

Основы класса Integer

Поскольку класс Integer имеет широкую функциональность, мы решили разделить данное руководство на разделы.

Как создать экземпляр класса Integer

Есть два способа создать экземпляр класса Integer . Первый способ – использовать ключевое слово new :

Второй способ создать — использовать функцию автоупаковки ( autoboxing ) языка Java , которая конвертирует примитивный тип данных в соответствующий класс-обёртку:

Тест на равенство объектов Integer

Объекты Integer являются обёрткой для примитивного типа int . Поскольку они являются объектами, то оператор == не будет работать. Рассмотрим приведенный ниже отрывок кода:

Поскольку мы имеем дело с объектами Integer , оператор == больше не применим. Как же провести сравнение двух Java объектов Integer ? Рассмотрим приведенный ниже отрывок кода, демонстрирующий это:

Java-программа для проверки объектов Integer на равенство

Максимальное и минимальное значения Integer

Чтобы найти максимальное и минимальное значения Integer , мы обратимся к двум его полям. Максимальное значение объекта Integer ( 2147483647 ) может быть найдено с помощью вызова Integer.MAX_VALUE , а минимальное значение Integer (- 2147483648 ) – через обращение к Integer.MIN_VALUE .

Рассмотрим метод parseInt(String s) , который принимает строку в качестве аргумента и конвертирует её в объект Integer . Если мы передадим строковое значение, которое имеет целочисленный эквивалент, превышающее максимальное значение в Integer.MAX_VALUE ? Грубым примером такого сценария может служить приведенный ниже код:

Мы передали в метод parseInt аргумент, который на 1 больше максимального значения. Поэтому если мы попытаемся выполнить этот отрывок кода, компилятор выдаст исключение NumberFormatException :

Как использовать статичные методы класса Integer

Большинство методов класса Integer статичные, поэтому имеет смысл разобраться, как получить доступ к ним. Не статичные методы используются так:

Статические методы не должны использоваться таким образом, а должны вызываться так как показано ниже:

Нестатические методы вызываются через переменная.метод. Статичные вызываются через Integer.метод(аргументы… ).

Поля объекта Integer

МодификаторТипАтрибутОписание
staticIntMAX_VALUEКонстанта, являющаяся максимальным значением данных типа int, равная 2^31-1.
staticIntMIN_VALUEКонстанта, являющаяся минимальным значением данных типа int, равная -2^31.
staticIntSIZEЧисло битов, использованное для представления значения типа int в двоичной форме.
staticClassTYPEЭкземпляр класса, представляющий примитивный тип int.

Конструктор класса Integer

СинтаксисОписание
Integer(int value)Создает новый объект Integer, который представляет указанное целочисленное значение.
Integer(String s)Это создает новый объект Integer, который представляет целочисленное значение, указанное строковым параметром конструктора.

Примеры использования методов класса Integer

МодификаторВозвращаемый типМетодОписание
staticIntbitCount(int i)Этот метод возвращает целочисленное значение, которое соответствует количеству единиц в двоичном представлении числа-аргумента метода.
bytebyteValue()Возвращает значение объекта Integer в виде типа byte. Этот метод переопределяет метод byteValue() класса Number.
staticIntcompare(int x, int y)Метод просто возвращает целочисленное представление результата сравнения двух целочисленных аргументов.
IntcompareTo(Integer anotherInteger)Возвращает целочисленное значение результата сравнения аргумента метода и объекта Integer.
staticIntegerdecode(String nm)Возвращает декодированное значение строкового аргумента в объект Integer.
DoubledoubleValue()Возвращает эквивалент объекта Integer типа double ( java double to integer ). Метод doubleValue() унаследован из класса Number.
booleanequals(Object obj)Возвращает результат сравнения объекта Integer и объекта-аргумента типа Object. Этот метод переопределяет метод equals класса Object.
FloatfloatValue()Возвращает эквивалент объекта Integer в типе float. Метод floatValue унаследован из класса Number.
staticIntegergetInteger(String nm)Возвращает значение свойства, указанного в качестве аргумента, в объекте Integer.
staticIntegergetInteger(String nm, int val)Определяет целочисленное значение свойства, указанного в строковом параметре. Если свойство не найдено, возвращает объект Integer со значением, указанным во втором параметре.
staticIntegergetInteger(String nm, Integer val)Возвращает целочисленное значение свойства, указанного в строковом параметре. Если свойство не найдено, возвращает объект Integer, указанный во втором параметре.
InthashCode()Возвращает хэш-код объекта Integer.
staticInthighestOneBit(int i)Определяет позицию старшего бита. Возвращает значение, в котором установлен только этот бит. Если ни один из битов не установлен, возвращает 0.
IntintValue()Возвращает целочисленный эквивалент объекта Integer. Метод унаследован из класса Number.
LonglongValue()Возвращает значение объекта Integer как тип long.
staticIntlowestOneBit(int i)Возвращает целое число, получающееся, если оставить только младшую (крайнюю правую) единицу в двоичном представлении числа-аргумента.
staticIntnumberOfLeadingZeros(int i)Возвращает количества нулей слева в двоичном представлении числа-аргумента.
staticIntnumberOfTrailingZeros(int i)Возвращает количества нулей справа в двоичном представлении числа-аргумента.
staticIntparseInt(String s)Преобразует строку-аргумент в десятичное число со знаком.
staticIntparseInt(String s, int radix)Преобразует строку-аргумент в целом число со знаком в системе исчисления, указанной во втором аргументе.
staticIntreverse(int i)Возвращает число, получаемое в результате перестановки битов числа-аргумента в обратном порядке.
staticIntreverseBytes(int i)Возвращает число, получаемое в результате перестановки байтов числа-аргумента в обратном порядке.
staticIntrotateLeft(int i, int distance)Возвращает число, полученное в результате сдвига битов числа-аргумента на указанное количество позиций влево. (Биты, вышедшие за пределы слева, возвращаются в правую часть).
staticIntrotateRight(int i, int distance)Возвращает число, полученное в результате сдвига битов числа-аргумента на указанное количество позиций вправо. (Биты, вышедшие за пределы справа, возвращаются в левую часть).
ShortshortValue()Возвращает эквивалент объекта Integer в типе short. Этот метод переопределяет метод shortValue класса Number.
staticintsignum(int i)Возвращает результат функции signum от указанного целого числа.
staticStringtoBinaryString(int i)Возвращает строковый эквивалент двоичного представления числа-аргумента.
staticStringtoHexString(int i)Возвращает строковое представление целочисленного аргумента в виде шестнадцатеричного числа без знака.
staticStringtoOctalString(int i)Возвращает строковое представление целочисленного аргумента в виде восьмеричного числа без знака.
StringtoString()Возвращает объект String, представляющий значение объекта Integer.
staticStringtoString(int i)Возвращает объект String, представляющий значение целочисленного аргумента.
staticStringtoString(int i, int radix)Возвращает строковый эквивалент целого десятичного числа-аргумента в указанной системе исчисления.
staticIntegervalueOf(int i)Возвращает экземпляр объекта Integer, представляющий указанное целое число.
staticIntegervalueOf(String s)Возвращает экземпляр объекта Integer, содержащий значение, указанное в строке-аргументе.
staticIntegervalueOf(String s, int radix)Возвращает экземпляр объекта Integer, содержащий значение, передаваемое в строке-аргументе в системе исчисления, указанной во втором параметре.

Данная публикация представляет собой перевод статьи « Java Integer Class Tutorial and Example » , подготовленной дружной командой проекта Интернет-технологии.ру

I’m working in Java and I would like to convert an Object to an int .

But it’s not working. It says: No suitable method for parseInt.

How can I fix that?

4 Answers 4

expects a String . You can use

and override the toString() method in your class.

Ideally, you should use generics to your advantage and have something along the lines of the below:

You can’t just convert any object to an int. How should that work. Think of a class like this:

You need to define a method yourself. Or you have to find out what specific object that is and how to convert it.

Not the answer you’re looking for? Browse other questions tagged java object int or ask your own question.

Hot Network Questions

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2020.1.15.35784

Оцените статью
Много толка
Добавить комментарий