在下面的代码中,它应该将警报默认值设为“Alarm_002”,但我没有得到以下代码。可以任何人请建议我
for (Site site : siteList) {
dto = new SiteDto();
dto.setResultCode(ResultMessage.SUCCESS.code().toString());
dto.setResultMessage(ResultMessage.SUCCESS.message());
dto.setSiteCode(site.getCode());
char[] Alarm_002 = null;
dto.setAreaName(String.copyValueOf(Alarm_002));
dto.setAlarmMsgType(site.getAlarmMsgType());
dto.setDailyMsgType(site.getDailyMsgType());
dto.setLogMsgType(site.getLogMsgType());`enter code here`
dto.setCircleCode(site.getCircle().getCode());
if (site.getSiteLocation() != null) {
dto.setLocationDetails(new LocationDetailsDto(site.getSiteLocation().getLatitude(), site.getSiteLocation().getLongitude()));
}
dto.setOperatorCode(site.getOperator().getCode());
dto.setSwVersion(site.getSwVersion());
siteListDto.add(dto);
siteRequest.getSiteCodeList().remove(site.getCode());
}
答案 0 :(得分:0)
实际上,String.copyValueOf(Alarm_002)
段代码会给NullPointerException
。所以正确初始化char数组。
char[] Alarm_002 = null;
dto.setAreaName(String.copyValueOf(Alarm_002));
在内部看,它调用value.length
,其中value只是你的数组,在你的情况下为null。
样品
public static void main(String[] args) {
char[] Alarm_002 = null;
System.out.println(String.copyValueOf(Alarm_002));
}
<强>输出强>
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.copyValueOf(String.java:2892)'
固定代码
public static void main(String[] args) {
char[] Alarm_002 = { 'A', 'l', 'a', 'r', 'm', '_', '0', '0', '2' };
System.out.println(String.copyValueOf(Alarm_002));
}
<强>输出强>
Alarm_002