如果用户为日期传递空值,我该如何避免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) {
}
答案 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 () { };