switch语句的Java编译错误

时间:2011-11-04 12:50:58

标签: java compilation

我写过这个

public static void setIsolationLevel(Isolev level) {
    try{
        switch(level){
            case READ_UNCOMMITTED;
            conn.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
            break;
        }
    }catch (SQLException e){
        throw new ServiceException(e.getMessage());
    }
}

但它没有编译。它说缺少:。问题是什么?我试图把“:”放在每个地方。

5 个答案:

答案 0 :(得分:4)

你的问题是你有

case READ_UNCOMMITTED;
用分号代替。你需要一个冒号

case READ_UNCOMMITTED:

答案 1 :(得分:3)

我确信编译器也会给你一个行号:

public static void setIsolationLevel(Isolev level) {
    try{
        switch(level){
        case READ_UNCOMMITTED: // <-------- here, replace ; with :
           conn.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
           break;
        }
    }catch (SQLException e){
        throw new ServiceException(e.getMessage());
    }

}

答案 2 :(得分:1)

Java中的switch语句如下:

switch(thingy){
    case CASE1: 
       ...
    break;
    ...
}

答案 3 :(得分:1)

case READ_UNCOMMITTED;需要更改为case READ_UNCOMMITTED:。注意冒号而不是分号。

答案 4 :(得分:0)

如果只是交换机中只有一个子句,则不需要切换 - 您只需使用'if'语句即可使代码更清晰。

public static void setIsolationLevel(Isolev level) {
    try{
        if(READ_UNCOMMITTED.equals(level)){
            conn.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
        }
    }catch (SQLException e){
        throw new ServiceException(e.getMessage());
    }
}