包装对象解决Exception in thread "main" java.lang.ClassCastException: java.base/java.lang.Integer cannot be

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 
原始类型封装类 
boolean Boolean 
char Character 
byte Byte 
short Short 
int Integer 
long Long 
float Float 
double Double 
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

Integer是int的封装类,里面有很多进行处理的静态方法   
Integer是对象而int不是,内存的分配位置也不一样

int是一种基本数据类型,而Integer是相应于int的类类型,称为对象包装。   
实现这种对象包装的目的主要是因为类能够提供必要的方法,用于实现基本数据类型的数值与可打印字符串之间的转换,以及一些其他的实用程序方法;   
另外,有些数据结构库类只能操作对象,而不支持基本数据类型的变量,包装类提供一种便利的方式,能够把基本数据类型转换成等价的对象,从而可以利用数据结构库类进行处理。

只是基本的前提知识,了解这些之后,我们就知道为啥数据库会报错,就是因为我们需要返回一个对象,而不是数据类型,所以我们将double改成Double就对了,但是直接转可能会出错,我们可以将对象先转成string,之后就行转换

遇到java.lang.Integer cannot be cast to java.lang.Double问题时,我们可以将Integer类型先转成String类型,然后再转成Double类型,具体操作如下:

Double hight=Double.valueOf(resultSet.getObject(4).toString());

之后解决问题

猜你喜欢

转载自blog.csdn.net/weixin_41066584/article/details/87803357
今日推荐