SimpleDateFormat不能为空
时间: 2023-11-22 15:39:02 浏览: 102
SimpleDateFormat不能为空,因为它是一个类似于日期格式化的工具类,用于将日期对象格式化为指定格式的字符串,或将字符串解析为日期对象。在示例中,通过format方法将null对象格式化为字符串,将导致NullPointerException。所以在使用SimpleDateFormat时,需要确保传入的日期对象不为空。
相关问题
public Map<String,String> upload(Manuscript manuscript,MultipartFile manuscript_file,HttpServletRequest request, HttpServletResponse response ) throws IOException{ Map<String,String> ret = new HashMap<String,String>(); if(StringUtils.isEmpty(manuscript.getAuthor_name())) { ret.put("type","error"); ret.put("msg","作者姓名不能为空!"); return ret; } String author_name = request.getSession().getAttribute("author_name").toString(); if(!manuscript.getAuthor_name().equals(author_name)) { ret.put("type","error"); ret.put("msg","请输入正确的姓名!"); return ret; } if(StringUtils.isEmpty(manuscript.getTitle())) { ret.put("type","error"); ret.put("msg","稿件标题不能为空!"); return ret; } if(StringUtils.isEmpty(manuscript.getSummary())) { ret.put("type","error"); ret.put("msg","稿件摘要不能为空!"); return ret; } if(manuscript_file==null) { ret.put("type","error"); ret.put("msg","文件没有选择"); return ret; } if(manuscript_file.getSize() > 10485760){ //文件没有选择 ret.put("type", "error"); ret.put("msg", "文件大小超过10M!"); return ret; } String suffix = manuscript_file.getOriginalFilename().substring(manuscript_file.getOriginalFilename().lastIndexOf(".")+1,manuscript_file.getOriginalFilename().length()); if(!"docx,doc,pdf".contains(suffix)) { ret.put("type","error"); ret.put("msg","文件格式不正确!"); return ret; } String savePath = request.getServletContext().getRealPath("/")+"\upload\"; File savePathFile = new File(savePath); if(!savePathFile.exists()) { savePathFile.mkdir(); } String fileName = new Date().getTime()+"."+suffix; ret.put("src",request.getServletContext().getContextPath() + "/upload/" + fileName); manuscript_file.transferTo(new File(savePath+fileName)); manuscript.setFilePath(ret.get("src")); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String format = sf.format(new Date()); manuscript.setSubmit_time(format); manuscript.setId((Integer)request.getSession().getAttribute("id")); manuscript.setState("待审核"); if(authorService.add(manuscript)<=0) { ret.put("type","error"); ret.put("msg","稿件添加失败!"); return ret; } ret.put("type", "success"); ret.put("msg", "文件上传成功!"); return ret; }这段代码什么意思
这是一个Java语言编写的上传文件的函数,函数需要传入一个Manuscript对象、一个MultipartFile对象、一个HttpServletRequest对象和一个HttpServletResponse对象。函数使用了HashMap来返回处理结果,同时进行了参数校验和文件存储操作。如果参数不符合要求,函数会返回错误提示。如果文件大于10M、不是docx、doc或pdf格式,函数也会返回错误提示。最后,将稿件添加到数据库中,并返回成功提示。
在“保存”按钮的单击事件里,完成如下操作: (1)对输入的内容进行判断,比如是否为空,日期是否早于当前等,如果不满足条件进行适 当提醒。 (2)如果输入的内容符合要求,将输入的备忘内容,保存一个 SharedPref 文件中,文件名为 “姓名简称”,保存信息包括:考生姓名、备忘内容、备忘时间,是否提醒,对应 key 名称自 行命名。(并将生成文件导出到电脑,同项目压缩文件一同提交到考场指定的服务器上。 (3)保存后跳转到 Activity2。 在 Activity2 的 onCreate 方法中,读取 SharedPref 文件,并连接成一个字符串显示在 result 标 签上.
好的,根据您提供的需求,以下是一个可能的 Activity 代码实现:
```
public class MainActivity extends AppCompatActivity {
private EditText etName, etMemo, etDate;
private CheckBox cbRemind;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取界面控件
etName = findViewById(R.id.et_name);
etMemo = findViewById(R.id.et_memo);
etDate = findViewById(R.id.et_date);
cbRemind = findViewById(R.id.cb_remind);
// 设置保存按钮的点击事件
findViewById(R.id.btn_save).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 获取输入内容
String name = etName.getText().toString().trim();
String memo = etMemo.getText().toString().trim();
String dateStr = etDate.getText().toString().trim();
boolean remind = cbRemind.isChecked();
// 判断输入内容
if (TextUtils.isEmpty(name)) {
Toast.makeText(MainActivity.this, "请输入姓名", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(memo)) {
Toast.makeText(MainActivity.this, "请输入备忘内容", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(dateStr)) {
Toast.makeText(MainActivity.this, "请输入备忘时间", Toast.LENGTH_SHORT).show();
} else {
try {
// 解析日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateStr);
// 判断日期是否早于当前时间
if (date.before(new Date())) {
Toast.makeText(MainActivity.this, "备忘时间不能早于当前时间", Toast.LENGTH_SHORT).show();
} else {
// 保存备忘信息到 SharedPreferences
SharedPreferences sp = getSharedPreferences(getShortName(), MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("name", name);
editor.putString("memo", memo);
editor.putString("date", dateStr);
editor.putBoolean("remind", remind);
editor.apply();
// 导出文件到电脑
// TODO: 导出文件到电脑
// 跳转到 Activity2
Intent intent = new Intent(MainActivity.this, Activity2.class);
startActivity(intent);
}
} catch (ParseException e) {
Toast.makeText(MainActivity.this, "备忘时间格式不正确", Toast.LENGTH_SHORT).show();
}
}
}
});
}
// 获取姓名简称
private String getShortName() {
String name = etName.getText().toString().trim();
if (name.length() <= 2) {
return name;
} else {
return name.substring(0, 1) + name.substring(name.length() - 1);
}
}
}
```
其中,`activity_main.xml` 布局文件可以根据您的具体需求自行编写,这里不再给出。需要注意的是,该代码中的导出文件到电脑的功能尚未实现,需要您自行完成。另外,在 Activity2 中读取 SharedPreferences 文件并显示在 result 标签上的代码也未给出,需要您自行编写。