Sugar ORM中的count()方法是否有理由采用String []参数而不是String ...?

时间:2016-08-15 15:12:51

标签: java android sugarorm

我正在开发一个简单的小测验解决方案,在数据库中,问题和测验之间存在多对一的关系,因此单个测验可以分配多个问题。

要获得测验的每个问题,我只是简单地说:

Question.find(Question.class, "quiz = ?", String.valueOf(quiz.getId()));

有时候,我想知道有多少问题,我想我可以这样做:

Question.count(Question.class, "quiz = ?", String.valueOf(quiz.getId()));

不幸的是,与find()不同,SugarRecord.count()方法接受String的数组,因此我必须将其称为:

Question.count(Question.class, "quiz = ?", new String[]{String.valueOf(quiz.getId())});

API中存在这种不一致的原因吗?

1 个答案:

答案 0 :(得分:1)

原因是使用重载。有groupBy, orderBylimit的方法。愚蠢,愚蠢,愚蠢。

public static <T> long count(Class<T> type); 
public static <T> long count(Class<T> type, String whereClause, String[] whereArgs);
public static <T> long count(Class<T> type, String whereClause,
        String[] whereArgs, String groupBy, String orderBy, String limit);

然而自己做:

public static <T> long countWhere(Class<T> type, String whereClause, String... whereArgs) {
     return Question.count(type, whereClause, whereArgs);
}