如何在try块之外获取变量

时间:2014-07-15 13:04:07

标签: java

我有一个函数可以获得用户在游戏中拥有的货币数量,并将其作为int令牌返回。我无法弄清楚我应该如何做到这一点,因为变量不会从try块中出来。

    try {
        result = statement.executeQuery();
        result.next();
        int tokens = result.getInt(1);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    int newToken = tokens + amnt;

8 个答案:

答案 0 :(得分:4)

只需在try块之外定义标记:

int tokens = 0;

try {
    result = statement.executeQuery();
    result.next();
    tokens = result.getInt(1);
} catch (SQLException e) {
    e.printStackTrace();
}

int newToken = tokens + amnt;

答案 1 :(得分:0)

在try块之外声明标记,但将其分配到try块内。由于这是一个原语,因此您无需实例化变量。

答案 2 :(得分:0)

在try块

之前声明tokens
  int tokens = 0;
  try {
        result = statement.executeQuery();
        result.next();
        tokens = result.getInt(1);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    int newToken = tokens + amnt;

答案 3 :(得分:0)

你必须在try-block之外声明它并用某种默认值初始化它。

答案 4 :(得分:0)

只需在token之外声明变量try,写下类似

的内容
int tokens=0; //here 
try {
        result = statement.executeQuery();
        result.next();
         tokens = result.getInt(1);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    int newToken = tokens + amnt;

答案 5 :(得分:0)

不,你根本就不能。可以将其视为函数中的局部变量。你能用另一个吗?

  

我该怎么做才能做到这一点

您应该在try-catch块之外声明它。

答案 6 :(得分:0)

例如:

int newToken = 0;
try {
    result = statement.executeQuery();
    result.next();
    newToken = result.getInt(1);
} catch (SQLException e) {
    e.printStackTrace();
}
newToken += amnt;

答案 7 :(得分:0)

正如安德鲁所说,在try块之外定义它将解决您的问题。这是因为变量范围仅限于try子句内,或者在大括号{ }

if-else子句函数中定义的变量也是如此。