diff --git a/api/src/main/java/com/todoroo/andlib/data/DatabaseDao.java b/api/src/main/java/com/todoroo/andlib/data/DatabaseDao.java index 4541f09ad..27321d981 100644 --- a/api/src/main/java/com/todoroo/andlib/data/DatabaseDao.java +++ b/api/src/main/java/com/todoroo/andlib/data/DatabaseDao.java @@ -32,6 +32,7 @@ public class DatabaseDao { private static final Logger log = LoggerFactory.getLogger(DatabaseDao.class); private final Class modelClass; + private final Constructor cursorConstructor; private Table table; @@ -39,6 +40,11 @@ public class DatabaseDao { public DatabaseDao(Class modelClass) { this.modelClass = modelClass; + try { + this.cursorConstructor = modelClass.getConstructor(TodorooCursor.class); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } } /** Gets table associated with this DAO */ @@ -107,9 +113,8 @@ public class DatabaseDao { if (cursor.getCount() == 0) { return null; } - Constructor constructor = modelClass.getConstructor(TodorooCursor.class); - return constructor.newInstance(cursor); - } catch (SecurityException | InvocationTargetException | IllegalAccessException | InstantiationException | IllegalArgumentException | NoSuchMethodException e) { + return cursorConstructor.newInstance(cursor); + } catch (InvocationTargetException | InstantiationException | IllegalAccessException e) { throw new RuntimeException(e); } finally { cursor.close();