一个简单的int比较导致问题

时间:2011-11-27 06:28:45

标签: java integer

我有以下代码:

 int bookingType=0;
        //mapSize=mapLoaded.size();

        DateTime startx = new DateTime(startDate.getTime());
        DateTime endx = new DateTime(endDate.getTime());

        //booking status
        boolean possible = false;

        //Booking type: 1 = Project, 2 = Training

        if(requestType.equals("Project")){
            bookingType = 1;
        }else if(requestType.equals("Training")){
            bookingType = 2;

        }

        //produces submap
        //mapSize = bookingType;

        bookingType = 1;
        if(bookingType==1)
        {
            .....
        }else if(bookingType==2){
           ....
       }

测试后的错误是检查bookingType的值。通常==会工作,但在这里它似乎完全跳过它。我检查了bookingType的值,它确实根据requestType更改为1或2。为什么if()不起作用?

谢谢,

2 个答案:

答案 0 :(得分:1)

在这里设置bookingType:

if(requestType.equals("Project")){
    bookingType = 1;
}else if(requestType.equals("Training")){
    bookingType = 2;
}

在这里你覆盖它:

bookingType = 1;
if(bookingType==1)
{
    .....
}else if(bookingType==2){
    ....
}

当然if只会执行if部分。由于您发布了不完整的代码,您可以尝试将else子句添加到if-else if链中,看看它是否被执行。

答案 1 :(得分:1)

根据你的代码,如果条件,它应该首先。

请你把else条件放在bookingType中打印出来吗?

并确保您没有在任何其他地方设置bookingType。如果您能提供更完整的代码示例,将会更有帮助。 并提供如何确定if条件检查不起作用和错误。