Добрый день.
Нубский вопрос, но сам не осилил. Андроид, ormlite (хоть это и не важно)
Есть такой класс:
@JsonIgnoreProperties(ignoreUnknown = true)
@DatabaseTable(tableName = "product")
public class Product {
public static Product getProductOrStub(String ref_Key) {
try {
List<Product> list = DatabaseHelper.getInstance().getDao(Product.class).queryForEq("ref_Key", ref_Key);
if (list.size() > 0)
return list.get(0);
} catch (SQLException e) {
e.printStackTrace();
}
return getStub();
}
}
Есть еще несколько классов, например
@JsonIgnoreProperties(ignoreUnknown = true)
@DatabaseTable
public class Customer extends CommonDataObject {
public static Customer getObjectOrStub(String key) {
try {
List<Customer> list = DatabaseHelper.getInstance().getDao(Customer.class).queryForEq("ref_Key", key);
if (list.size() > 0)
return list.get(0);
} catch (SQLException e) {
e.printStackTrace();
}
return getStub();
}
}
Метод getObjectOrStub во всех классах одинаковый, отличается только классом при объявлении List.
Как написать супер-класс и вынести этот метод туда? Т.е. я хочу какую-то такую ересь:
public abstract class CommonDataObject {
public static <T> getObjectOrStub(String ref_Key) {
//возвращает POJO объект из БД или заглушку
}
}