我如何在java中将对象转换为int型?
当前回答
假设对象是一个Integer对象,那么你可以这样做:
int i = ((Integer) obj).intValue();
如果对象不是Integer对象,则必须检测类型并根据其类型进行转换。
其他回答
不可能做到。int不是一个对象,它是一个基本类型。你可以将它转换为Integer,然后获取int。
Integer i = (Integer) o; // throws ClassCastException if o.getClass() != Integer.class
int num = i; //Java 1.5 or higher
如果你的意思是将String转换为int,请使用Integer.valueOf("123")。
你不能将大多数其他对象强制转换为int型,因为它们没有int值。例如,XmlDocument没有int值。
必须将其强制转换为Integer (int的包装类)。然后,您可以使用Integer的intValue()方法来获取内部整型。
如果你确定这个对象是一个Integer:
int i = (Integer) object;
或者,从Java 7开始,你可以等价地写:
int i = (int) object;
注意,如果你的对象不是Integer,它会抛出ClassCastException,如果你的对象是null,它会抛出NullPointerException。
通过这种方式,您假设您的对象是一个整数(包装的整型),并将其拆箱为整型。
int是一个原语,所以它不能存储为对象,唯一的方法是将int考虑/装箱为整数,然后存储为对象。
如果你的对象是一个String,那么你可以使用Integer.valueOf()方法将它转换成一个简单的int:
int i = Integer.valueOf((String) object);
如果对象不是一个包含整数的String对象,它可以抛出NumberFormatException异常。
资源:
自动装箱 原始数据类型
关于同一话题:
Java:自动装箱和强制转换有什么区别? 自动装箱:我可以这样写:Integer I = 0;而不是:Integer i = new Integer(0); 将Object转换为原始int
我猜你想知道为什么C或c++允许像操作数字一样操作对象指针,但在Java中不能以同样的方式操作对象引用。
Java中的对象引用不像C或c++中的指针……指针基本上是整数,你可以像操作其他int一样操作它们。引用是一种更具体的抽象,不能像指针那样被操作。
推荐文章
- 如何在java中格式化持续时间?(如格式H:MM:SS)
- urlencoder .encode(字符串)已弃用,我应该使用什么代替?
- javax.transaction.Transactional vs . org.springframework.transaction.annotation.Transactional
- Java 8接口方法中不允许“同步”的原因是什么?
- 如何找到Java堆大小和内存使用(Linux)?
- 使用Enum实现单例(Java)
- RabbitMQ与通道和连接之间的关系
- buildSessionFactory()配置方法在Hibernate中已弃用?
- Spring MVC -如何获得所有的请求参数在一个地图在Spring控制器?
- 如何在Java中按两个字段排序?
- 文件之间的差异。路径中的分隔符和斜杠
- 在方法参数中使用NotNull注释
- 在Swift中转换Float为Int
- Spring MVC中处理可选参数的@RequestParam
- Tomcat:如何查找正在运行的Tomcat版本?