【发布时间】:2019-05-09 14:43:27
【问题描述】:
我正在尝试在方法中返回一个布尔值,并且我正在使用消费者函数。 有没有办法直接在该消费者表达式中返回该值?
这是代码:
private static boolean uuidExists(UUID uuid) {
MySQL.getResult("", rs -> {
try {
if(rs.next()){
return rs.getString("UUID") != null;
}
} catch (SQLException e) {
}
});
return false;
}
编辑:
我知道我可以创建一个布尔值并更改该值,但我不想这样做。
编辑:
获取结果代码:
public static void getResult(String qry, Consumer<ResultSet> consumer){
new BukkitRunnable() {
@Override
public void run() {
if(isConnected()) {
consumer.accept(Warpixel.getWarpixel().getStats().getResult(qry));
return;
}
consumer.accept(null);
}
}.runTaskAsynchronously(Bedwars.getMain());
}
【问题讨论】:
-
MySQL类是什么,getResult是异步的?如果它是异步的,它会返回什么?你能张贴它的签名吗? -
查看
Consumer方法accept的定义——它的返回类型是void。 Javadoc。甚至文档都说“表示接受单个输入参数并且不返回任何结果的操作” -
只是一个消费者返回那个 ResultSet
-
您可能在方法声明中使用
Predicate<ResultSet>而不是Consumer<ResultSet>。 -
请提供
MySQL.getResult方法签名(即参数类型和返回类型)