我猜我正在收到此错误,因为字符串试图将Null值作为子字符串。但是“ .length()> 0”部分不能消除该问题吗?
不,在itemdescription为null时调用itemdescription.length()不会生成StringIndexOutOfBoundsException,而是会生成NullPointerException,因为您实际上将尝试在
null 上调用方法。
正如其他人指出的那样,StringIndexOutOfBoundsException表示itemdescription的长度至少为38个字符。您可能想同时处理这两种情况(假设您要截断):
final String value;if (itemdescription == null || itemdescription.length() <= 0) { value = "_";} else if (itemdescription.length() <= 38) { value = itemdescription;} else { value = itemdescription.substring(0, 38);}pstmt2.setString(3, value);如果您经常这样做,可能是实用程序功能的好地方…



