Java 如何将对象强制转换为int

Java 如何将对象强制转换为int,java,object,casting,integer,Java,Object,Casting,Integer,在java中如何将对象强制转换为int?必须将其强制转换为整数(int的包装类)。然后,可以使用Integer的intValue()方法获取内部int。假设对象是Integer对象,则可以执行以下操作: int i = ((Integer) obj).intValue(); inti=((整数)obj).intValue(); 如果对象不是整数对象,则必须检测类型并根据其类型对其进行转换。不能。int不是对象 Integer是一个对象,但我怀疑你的意思是什么。做不到。int不是对象,而是基本类型

在java中如何将对象强制转换为int?

必须将其强制转换为整数(int的包装类)。然后,可以使用Integer的intValue()方法获取内部int。

假设对象是
Integer
对象,则可以执行以下操作:

int i = ((Integer) obj).intValue(); inti=((整数)obj).intValue();
如果对象不是
整数
对象,则必须检测类型并根据其类型对其进行转换。

不能。
int
不是
对象


Integer
是一个
对象
,但我怀疑你的意思是什么。

做不到。
int
不是对象,而是基本类型。您可以将其转换为整数,然后获取int

 Integer i = (Integer) o; // throws ClassCastException if o.getClass() != Integer.class

 int num = i; //Java 1.5 or higher

如果您的意思是将字符串强制转换为int,请使用
Integer.valueOf(“123”)


但是,您不能将大多数其他对象强制转换为int,因为它们没有int值。例如,XmlDocument没有int值。

如果您确定此对象是一个
整数

int i = (Integer) object;
或者,从Java 7开始,您可以等效地编写:

int i = (int) object;
注意,如果您的对象不是,它会抛出a;如果您的对象为
null
,它会抛出a

通过这种方式,您假设对象是一个整数(包装的int),并将其解装箱为int

int
是一个原语,因此不能将其存储为
对象
,唯一的方法是将
int
视为一个
整数
,然后将其存储为
对象


如果对象是
字符串
,则可以使用该方法将其转换为简单的int:

int i = Integer.valueOf((String) object);
如果你的对象不是一个包含整数内容的
字符串,它会抛出一个


资源:

关于同一主题:

如果最初被实例化为,则可以使用强制转换操作符
(子类型)
将其向下转换为
int

请注意,这只适用于至少使用Java 1.5的情况,否则必须将
i
声明为
Integer
,然后对其调用
intValue()

但是,如果它最初根本不是作为
整数创建的,那么您就不能像这样向下转换。这将导致消息中包含原始类名的
ClassCastException
。如果通过获得的对象表示形式表示语法上有效的整数(例如,仅限数字,如有必要,请在前面加减号),则可以为此使用或

Object object = "10";
int i = Integer.valueOf(String.valueOf(object));
另见:
回答:

int i = ( Integer ) yourObject;
如果您的对象已经是一个整数,它将平稳运行。即:

Object yourObject = 1;
//  cast here

等等

如果对象是其他对象,则需要先将其(如果可能)转换为int:

String s = "1";
Object yourObject = Integer.parseInt(s);
//  cast here


正如你所看到的,这不是一个非常有效的方法。你只需要确定你拥有什么样的物体。我想你会想为什么C或C++会像一个数字那样操纵一个对象指针,但是你不能用同样的方式操纵java中的对象引用。
对象引用不像C或C++中的指针…指针基本上是整数,您可以像处理任何其他int一样对其进行操作。引用故意是更具体的抽象,不能像指针那样进行操作。

首先检查instanceof关键字。如果为true,则将其强制转换。

我在处理来自GSON的数据时使用单行程序:

int i = object != null ? Double.valueOf(object.toString()).intValue() : 0;
int[]getAdminIDList(字符串表名、字符串属性名、int值)抛出SQLException{
ArrayList list=null;
语句Statement=conn.createStatement();
ResultSet result=statement.executeQuery(“从“+tableName+”中选择管理员id,其中“+attributeName+”=“+value+””);
while(result.next()){
list.add(result.getInt(1));
}
语句。close();
int id[]=新int[list.size()];
for(int i=0;i
这段代码说明了为什么
ArrayList
很重要,以及我们为什么使用它。从
对象
简单地强制转换
int
。可能会有所帮助。

请参阅以下代码:

public class sample 
{
  public static void main(String[] args) 
  {
    Object obj=new Object();
    int a=10,b=0;
    obj=a;
    b=(int)obj;

    System.out.println("Object="+obj+"\nB="+b);
  }
}

例如对象变量<代码>hastaId

Object hastaId = session.getAttribute("hastaID");

例如,将对象强制转换为int,
hastaID

int hastaID=Integer.parseInt(String.valueOf(hastaId));
场景1:简单案例 如果保证您的对象是一个
整数
,这是一种简单的方法:

int x = (Integer)yourObject;

场景2:任何数字对象 在Java
Integer
Long
biginger
等中,都实现了
Number
接口,该接口有一个名为
intValue
的方法。具有数字方面的任何其他自定义类型也应实现
Number
(例如:
Age实现Number
)。因此,您可以:

int x = ((Number)yourObject).intValue();
int x = System.identityHashCode(yourObject);
场景3:解析数字文本 当您接受来自命令行(或文本字段等)的用户输入时,它将以
字符串的形式出现。在这种情况下,可以使用
Integer.parseInt(字符串)

如果将输入作为
对象
,则可以使用
(字符串)输入
,或者,如果可以使用其他文本类型,则可以使用
input.toString()

场景4:身份散列 在Java中没有指针。但是,
对象
有一个类似指针的默认实现,用于
hashCode()
,可通过
系统.identityHashCode(对象o)
直接使用。因此,您可以:

int x = ((Number)yourObject).intValue();
int x = System.identityHashCode(yourObject);
请注意,这不是真正的指针值。对象的内存地址可以由JVM更改,而标识哈希保持不变。另外,两个活动对象可以具有相同的标识散列

您也可以使用
object.hashCode()
,但也可以
int hastaID=Integer.parseInt(String.valueOf(hastaId));
int x = (Integer)yourObject;
int x = ((Number)yourObject).intValue();
String input = someBuffer.readLine();
int x = Integer.parseInt(input);
int x = Integer.parseInt(input.toString());
int x = System.identityHashCode(yourObject);
class ObjectIndexer {
    
    private int index = 0;
    
    private Map<Object, Integer> map = new WeakHashMap<>();
    //                               or:
    //                                 new WeakIdentityHashMap<>();
    
    public int indexFor(Object object) {
        if (map.containsKey(object)) {
            return map.get(object);
        } else {
            index++;
            map.put(object, index);
            return index;
        }
    }
    
}
ObjectIndexer indexer = new ObjectIndexer();
int x = indexer.indexFor(yourObject);    // 1
int y = indexer.indexFor(new Object());  // 2
int z = indexer.indexFor(yourObject);    // 1
enum Foo { BAR, BAZ, QUX }

// ...

Object baz = Foo.BAZ;
int index = ((Enum)baz).ordinal(); // 1
so divide1=me.getValue()/2;

int divide1 = (Integer) me.getValue()/2;