【发布时间】:2018-10-28 16:43:28
【问题描述】:
我发现了很多关于这个主题的问题 - 但没有找到与我相同的问题。
我在 Java 8 项目中工作。 我从 sql-query 得到 Object[] 实例,类似于:
"SELECT user.name, user.age, user.client_type, user.shopping_card FROM user_account user"
(我使用 sqlyog)
有时 user.client_type 字段或 user.shopping_card 返回 null。 当我想将此 Object[] 实例转换为 Java 类时,出现异常:
String userName= (String) obj[1];
int age= (Integer) obj[2];
int type= obj[3]== null? null: (Integer) obj[3];
int card= obj[4]== null? null: (Integer) obj[4] ;
return new UserData(userName, age, type, card);
当类型为空/卡为空时,调试类型/卡转换行时出现异常:
java.lang.NullPointerException
"SELECT user.name, user.age,
CASE WHEN user.client_type IS NOT NULL THEN user.client_type ELSE NULL END as
client_type, CASE WHEN user.shopping_card IS NOT NULL THEN
user.shopping_card ELSE NULL END as shopping_card FROM user_account user"
我该怎么办? 我必须说,当所有数据都不为空时 - 一切正常!
【问题讨论】:
-
你的代码是这样的,你应该得到一些转换错误,因为你不能通过转换将某些东西转换为 int,而且我认为你不应该在任何地方得到 NullPointerException。你能分享更多的代码吗?就像您如何从表中读取数据一样?
-
我给你写了 0 “我必须说,当所有数据都不为空时 - 一切正常!” - 所以问题一定是空值