J'ai plusieurs classes ORM à utiliser avec ORMLite. Tous ont un champ statique (le DAO) et quelques méthodes statiques. Je veux déplacer ces trois à un trait de caractère générique, comme ceci:Impossible de trouver les annotations ORMLite à partir du trait générique
trait ORM<K, V> {
private static Dao<K, V> dao = null
@Synchronized
static Dao getDao() {
dao = dao ?: DaoManager.createDao(DatabaseConnection.get(), K)
}
}
Cette approche ne fonctionnera pas, ce qui donne l'erreur suivante
java.lang.IllegalArgumentException: No fields have a DatabaseField annotation in class java.lang.Object
Cependant, si je change la méthode à une méthode d'instance comme si
trait ORM<K, V> {
private static Dao<K, V> dao = null
@Synchronized
Dao getDao() {
dao = dao ?: DaoManager.createDao(DatabaseConnection.get(), this.getClass())
}
}
Cela fonctionne très bien, mais cela n'a pas beaucoup de sens d'être une méthode d'instance.
Une idée sur la façon de le faire fonctionner dans un contexte statique?