在Java中使用unsigned转换smallint

sko*_*ine 5 java mysql casting jooq

我正在使用jOOQ来获取MySQL中的id smallint unsigned primary key auto_increment

public List<Integer> getID() {
   Factory sql = new Factory(Database.getInstance().connect(), SQLDialect.MYSQL);
   return (List<Integer>) sql.select().from("users").fetch().getValues("id_users");
}
Run Code Online (Sandbox Code Playgroud)

然后出错

org.jooq.tools.unsigned.UShort cannot be cast to java.lang.Integer
Run Code Online (Sandbox Code Playgroud)

在这里,他们写道,smallint unsigned应该转换为int.

编辑 方法应该是

public List<UShort> getID() {
    Factory sql = new Factory(Database.getInstance().connect(), SQLDialect.MYSQL);
    return (List<UShort>) sql.select().from("users").fetch().getValues("id_users");
}
Run Code Online (Sandbox Code Playgroud)

并且循环结果应该转换为int.

Cro*_*zin 3

您不能将 UShort 转换为 Integer,因为它不继承该类。我想你应该用来UShort.intValue()检索整数。