将特定字符串值作为默认字段值

时间:2015-01-29 09:51:41

标签: java

在下面的代码中,它应该将警报默认值设为“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());
        }

1 个答案:

答案 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