Как из object сделать int java
Перейти к содержимому

Как из object сделать int java

  • автор:

How to cast an Object to an int

Taslim Oseni's user avatar

Or, starting from Java 7, you can equivalently write:

Beware, it can throw a ClassCastException if your object isn’t an Integer and a NullPointerException if your object is null .

This way you assume that your Object is an Integer (the wrapped int) and you unbox it into an int.

int is a primitive so it can’t be stored as an Object , the only way is to have an int considered/boxed as an Integer then stored as an Object .

If your object is a String , then you can use the Integer.valueOf() method to convert it into a simple int :

It can throw a NumberFormatException if your object isn’t really a String with an integer as content.

Resources :

On the same topic :

Scenario 1: simple case

If it’s guaranteed that your object is an Integer , this is the simple way:

Scenario 2: any numerical object

In Java Integer , Long , BigInteger etc. all implement the Number interface which has a method named intValue . Any other custom types with a numerical aspect should also implement Number (for example: Age implements Number ). So you can:

Scenario 3: parse numerical text

When you accept user input from command line (or text field etc.) you get it as a String . In this case you can use Integer.parseInt(String string) :

If you get input as Object , you can use (String)input , or, if it can have an other textual type, input.toString() :

Scenario 4: identity hash

In Java there are no pointers. However Object has a pointer-like default implementation for hashCode() , which is directly available via System.identityHashCode(Object o) . So you can:

Note that this is not a real pointer value. Objects’ memory address can be changed by the JVM while their identity hashes are keeping. Also, two living objects can have the same identity hash.

You can also use object.hashCode() , but it can be type specific.

Scenario 5: unique index

In same cases you need a unique index for each object, like to auto incremented ID values in a database table (and unlike to identity hash which is not unique). A simple sample implementation for this:

Convert Object to Int

In this section, we are going to learn to convert a numeric string type Object into a primitive type int and Integer Object to primitive type int.

Convert Object to Int

In this section, we are going to learn to convert a numeric string type Object into a primitive type int and Integer Object to primitive type int.

Convert Object to Int

In this section, we are going to learn to convert a numeric string type Object into a primitive type int and Integer Object to primitive type int. .

Code Description:

The following program converts numeric string type object into primitive type int and Integer type object to primitive type int. The parseInt() method of an Integer class takes a numeric string object and returns the primitive type int value. Again, this program converts an Integer object into a primitive type int using the intValue() method.

Here is the code of this program:

import java.io.*;
import java.lang.*;

public class ObjectToInt <
public static void main ( String [] args ) <
//Numeric string to primitive int
String Obj = "123" ;
int i = Integer.parseInt ( Obj ) ;
System.out.println ( "Numeric string to primitive int = " +i ) ;
//Integer object to primitive int
Integer IntValue = 123 ;
int intValue = IntValue.intValue () ;
System.out.println ( "Integer object ot primitive int = " +intValue ) ;
>
>

Output of this program

C:\vinod>java ObjectToInt
Numeric string to primitive int = 123
Integer object ot primitive int = 123

Как привести Объект к int

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

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

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

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

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

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

Ресурсы:

  • Oracle.com — Автообновление
  • Oracle.com — Примитивные типы данных

В той же теме:

  • Java: Какая разница между автобоксингом и литьем?
  • Autoboxing: Поэтому я могу написать: Integer я = 0; вместо: Integer я = new Integer (0);
  • Преобразовать объект в примитивный int

Предполагая, что объект является объектом 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: уникальный индекс

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

Как преобразовать объект в int

Ой. Я просто хотел, чтобы члены перечисления приводились к конкретным целочисленным значениям, чтобы иметь перечисления для констант winapi. msdn.microsoft.com/en-us/library/windows/desktop/… — Tomáš Zato — Reinstate Monica

@ TomášZato Вы можете сделать это (вроде того), просто определите поле в своем перечислении, чтобы хранить целочисленное значение (скажем, intValue ) создайте конструктор для вашего перечисления, который устанавливает intValue , пусть ваши константы перечисления вызывают этот конструктор и добавляют геттер для intValue . Затем вместо приведения вызовите геттер. — Brian McCutchon

19 ответы

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

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

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

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

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

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

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

Ресурсы :

По той же теме:

ответ дан 23 мая ’17, 12:05

Вы уверены в исключении NullPointerException? Я думал, что нулевой объект просто даст нулевое целое число . — Этьен де Мартель

Наблюдения и советы этой статьи мы подготовили на основании опыта команды NullPointerException произойдет во время распаковки Integer в int — Колин Хеберт

Вы не выполняете приведение к int, ни один объект никогда не может быть приведен к int. На самом деле вы используете Integer, а затем автобоксируете int. — Стив Куо

@ Стив Куо, да, именно то, что я говорю. Вот почему я не использовал слово «литье». — Колин Хеберт

@Etienne: вы можете преобразовать нулевой объект в целое число, получив таким образом нулевое целое число. Но когда вы попытаетесь извлечь из него int, вы получите исключение с нулевым указателем. Не существует такой вещи, как «null int». — сойка

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

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

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

На яве 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: уникальный индекс

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *