无法解析变量ArrayList

时间:2018-05-17 18:33:10

标签: java html jsp arraylist

我做错了什么?有人可以帮忙吗? 在“if(result.get(0)...)”中,它表示“结果无法解决”。 我坚持这个。

<%
    if(session != null){
        ArrayList<Prize> result = new ArrayList<Prize>();
        result = (ArrayList<Prize>) session.getAttribute("result");  
    }
%>

<%
    if(result.get(0).getIdPrize() != null){
        prize = result.get(0);
        out.println(prize.getLottery(prize.getIdLottery()) + 
        " - " + prize.getHour(prize.getIdHour()) +
        " - " + prize.getDate(prize.getDatePrize()));
    }
%>

3 个答案:

答案 0 :(得分:1)

变量结果在第一个if块中声明,在

之后不再可见

尝试一下

    <%
    ArrayList<Prize> result = new ArrayList<Prize>();
    if(session != null){
        result = (ArrayList<Prize>) session.getAttribute("result");  
    }
    %>

<%
    if(result.size() > 0 && result.get(0).getIdPrize() != null){
        prize = result.get(0);
        out.println(prize.getLottery(prize.getIdLottery()) + 
        " - " + prize.getHour(prize.getIdHour()) +
        " - " + prize.getDate(prize.getDatePrize()));
    }
%>

答案 1 :(得分:0)

正如@Vyncent所说,将结果声明移到if结构之外。

答案 2 :(得分:0)

常见的newbiew错误是不知道变量的范围。 括号中的任何内容都是变量生命的cicle

    {
     int a = 3; // You can use this variable inside this brackets
      System.out.println(a);
    }
    System.out.println(a); => Java Compiler will throw an error.

这适用于所有if / while / for语句。 因此,对于解决方案,只需知道如何使用变量的范围

   ArrayList<Prize> result = new ArrayList<Prize>(); 
        if(session != null){
            result = (ArrayList<Prize>) session.getAttribute("result"); 
        }

    if(result.get(0).getIdPrize() != null){
        prize = result.get(0);
        out.println(prize.getLottery(prize.getIdLottery()) + 
        " - " + prize.getHour(prize.getIdHour()) +
        " - " + prize.getDate(prize.getDatePrize()));
    }