java - 有没有办法简化这个三元语句?

标签 java android sqlite

所以我现在所拥有的是以下内容:

responseJson.put("barcode", 
    response.getBlob(response.getColumnIndex(DatabaseHelper.rBarcode)) == null 
        ? "" 
        : Base64.encodeToString(response.getBlob(response.getColumnIndex(DatabaseHelper.rBarcode)), 
            Base64.DEFAULT));

简而言之,我想做的就是评估数据库调用是否返回 null,如果返回,则使用空字符串填充 JSON,否则使用数据库中的值。

我觉得我可能在这里遗漏了一些东西,并且不想对数据库进行两次调用,所以我知道我可以创建一个变量来只调用一次并将值存储在那里,但想知道是否有其他方法可以做到这一点吗?

最佳答案

只需进行一次数据库调用,然后重用结果:

byte[] barcode = response.getBlob(response.getColumnIndex(DatabaseHelper.rBarcode));
responseJson.put("barcode", barcode == null ? "" : 
    Base64.encodeToString(barcode, Base64.DEFAULT));

但是如果写成 if 语句,这可能会更容易阅读和维护:

byte[] barcode = response.getBlob(response.getColumnIndex(DatabaseHelper.rBarcode));
String value = "";
if (barcode != null) {
    value = Base64.encodeToString(barcode, Base64.DEFAULT);
}
responseJson.put("barcode", value);

关于java - 有没有办法简化这个三元语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50226826/

相关文章:

Java实时调试(游戏)

iphone - 在sqlite中插入特殊字符

mysql - Rails activerecord 查询在 sqlite 中工作,而不是在 MySql 中工作

sql - 使用多对多连接 sqlite 中的表

java - 如何使用 Lucene 构建我自己的 "common word"过滤器

java - maven ejb 项目 - 包含依赖项的包

java - 使用安全的 HTTPS 连接在 Android Webview 上设置凭据

android - 将 "FlexBoxLayout"添加到项目会中断编译

java - 来自 wsdl 的 jaxb DTO 的自定义包

android - 在全屏和非全屏之间切换导致 View 偏移