Android Java调用如果AND else代码块

时间:2012-09-10 03:46:08

标签: java android if-statement

我正在使用ORMLite,并创建了一个从ORMLite dao框架扩展的自定义DAO。在自定义dao中,我重写create方法,并添加一些逻辑。我查询实体列表,如果它不存在则创建一个新实体,如果存在,则返回现有实体的id。查询工作正常,因为我正在调试并在运行时检查列表对象。但是,只要列表大小为0,它就会执行if..else的第一个块,然后执行第二个块,完全忽略return语句。如果列表不为空,则按预期工作。

任何人都知道为什么这会表现得很时髦?我甚至将覆盖方法名称更改为'persist',以防它由于某种原因递归调用自身,并且它不起作用。

@Override
public int create(DigitalAsset dAsset) throws SQLException {
        List<DigitalAsset> assets = this.queryForMatching(dAsset);

        if (assets.size() == 0) {
            return super.create(dAsset);
        }
        else {
            return assets.get(0).getId();
        }
    }

1 个答案:

答案 0 :(得分:0)

我现在觉得很愚蠢,但经过进一步研究,我发现ORMLite create方法返回受影响的行数,而不是id。事实证明,代码根本没有在两个块中运行。已经很晚了,当时我可能还不太清楚。