Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t读取try catch中的变量_Java_Variables_Try Catch - Fatal编程技术网

Java Can';t读取try catch中的变量

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

问题是JOptionPane中的createdDate无法解析为变量。为什么呢?我尝试了一切,比如在try catch之外初始化Date对象,但仍然不起作用。救命啊

您正在try-catch块中定义变量,该块是它自己的作用域。在try块外部,变量“超出范围”,因此在稍后的时间点“不存在”。

因为一旦try块完成,变量就超出范围。将jOptionPane代码移到try块内部,或将createDate声明移到try块外部。

变量的作用域位于try{}内部,因为它是声明变量的位置。您可以这样做:

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);
}
....