当用户输入无效数据时,避免NullPointerException

时间:2018-05-16 22:41:29

标签: java

如果用户为日期传递空值,我该如何避免NullPointerExeption?理想情况下,我会使用简单的if语句。

SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat timeFormatter = new SimpleDateFormat("HH:mm");
String layupDate = dateFormatter.format(orderLayupDateSet.getLayupDate());  
String layupTime = timeFormatter.format(orderLayupDateSet.getLayupDate());
if(layupDate == null) {
}

1 个答案:

答案 0 :(得分:1)

您在班轮中验证日期((orderLayupDateSet.getLayupDate() == null) ? new Date() : orderLayupDateSet.getLayupDate() )(如果此处为空,则只创建一个新日期,但您可以随意执行);

if (orderLayupDateSet.getLayupDate() == null) {
   orderLayupDateSet.setLayupDate(new Date());
}

你也可以去传统的

public class DateUtils {
    public static String formatDateTime(Date dateOrNull) {
        return (dateOrNull == null ? null : DateFormat.getDateTimeInstance().format(dateOrNull));
    }
}

或者您可以使用实用程序以相反的方式执行此操作,并调用实用程序函数来检查您 - 看到您在上面的示例中返回了一个String。如下所示;

String layupDate = (orderLayupDateSet == null || orderLayupDateSet.getLayupDate() ? null : dateFormatter.format(orderLayupDateSet.getLayupDate()));  

您的代码中可以

(function() {
'use strict';

angular
    .module('app.myView')
    .controller($q,$rootScope,$scope,uiGridConstants,'myView', myView);

function myView($q, $rootScope, $scope, uiGridConstants, myViewService, commonService, $timeout) {
    var vm = this;
    vm.callFeedback = function () { };