Java Can';t读取try catch中的变量
问题是JOptionPane中的createdDate无法解析为变量。为什么呢?我尝试了一切,比如在try catch之外初始化Date对象,但仍然不起作用。救命啊 您正在try-catch块中定义变量,该块是它自己的作用域。在try块外部,变量“超出范围”,因此在稍后的时间点“不存在”。因为一旦try块完成,变量就超出范围。将jOptionPane代码移到try块内部,或将createDate声明移到try块外部。变量的作用域位于try{}内部,因为它是声明变量的位置。您可以这样做:Java Can';t读取try catch中的变量,java,variables,try-catch,Java,Variables,Try Catch,问题是JOptionPane中的createdDate无法解析为变量。为什么呢?我尝试了一切,比如在try catch之外初始化Date对象,但仍然不起作用。救命啊 您正在try-catch块中定义变量,该块是它自己的作用域。在try块外部,变量“超出范围”,因此在稍后的时间点“不存在”。因为一旦try块完成,变量就超出范围。将jOptionPane代码移到try块内部,或将createDate声明移到try块外部。变量的作用域位于try{}内部,因为它是声明变量的位置。您可以这样做: Stri
String selectedDate = "2012-" + createdMonth
+ "-" + createdDay;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");
try {
Date createdDate = dateFormat.parse(selectedDate);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int x = JOptionPane.showOptionDialog(frame,
"Here is your new booking schedule:\n "
+ "Timeslot: "
+ selectedTimeslot + "\n"
+ "Date: " + createdDate + "\n"
+ "Continue?",
"Booking Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null,
options, options[1]);
您已经在try的范围内声明了变量。您使用了“Date createdDate=..”,这意味着一旦超出try{..}的范围,它将不再存在。确保您将其声明在try的范围之外,然后看看它是否有效 考虑到大量的冗余空白,是否有代码的任何部分从中间遗漏?请使用
yyyy-MM-dd
而不是yyy-MM-dd
<代码>毫米表示月份<代码>毫米表示分钟。请参阅SimpleDateFormat
的API文档。该死,您需要在此网站上快速键入!:)。。。或者写出好的答案,或者选择更难的问题:-)
Date createDate;
try
{
createDate = dateFormat.parse(selectedDate);
}
....