在return语句后切换默认执行

时间:2014-06-27 16:20:28

标签: java android switch-statement

我正在使用以下代码块,即使发生了奇怪的问题(我已经用断点证实了这一点)第一个案例是命中,AND包含一个return语句,default也是击:

switch (sortType)
        {
            case RATING:
                return values.get(position - 1).getRating() != values.get(position).getRating();
            case GRAPE:
                return !values.get(position - 1).getGrape().equals(values.get(position).getGrape());
            case REGION:
                return !values.get(position - 1).getRegion().equals(values.get(position).getRegion());
            default:
                return !values.get(position - 1).getGrape().equals(values.get(position).getGrape());
        }

default阻止正在运行时,sortTypeRATING。据我所知,第一种情况下的return应阻止default运行。这是对的吗?

1 个答案:

答案 0 :(得分:1)

根据返回类型,其中一行是错误的:

case RATING:
            return values.get(position - 1).getRating() != values.get(position).getRating();
case GRAPE:
            return !values.get(position - 1).getGrape().equals(values.get(position).getGrape());

第一个使用!=,第二个使用.equals()。我想第二个是正确的。