我有一个如下所示的迭代代码,用于我项目的不同位置:
List<NewsItem> thisitem = Select.from(NewsItem.class).where(Condition.prop("_id").eq(item.get_id())).list();
if (thisitem.size() > 0) {
thisitem.get(0).delete();
image_bookmark.setImageResource(R.drawable.ic_bookmark_normal);
} else {
item.save();
image_bookmark.setImageResource(R.drawable.ic_bookmarkfill);
}
我想编写一个包含上述代码的方法,但适用于扩展 SugarOrmItem
类的类的每个对象。我写了下面的内容,但显然这不是真的:
public static void insert_bookmark(String prop,SugarOrmItem record ,ImageView imageView)
{
List<SugarOrmItem> thisitem = Select.from(SugarOrmItem.class).where(Condition.prop(prop).eq(record.get_id())).list();
if (thisitem.size() > 0) {
thisitem.get(0).delete();
imageView.setImageResource(R.drawable.ic_bookmark_normal);
} else {
imageView.setImageResource(R.drawable.ic_bookmarkfill);
}
}
我该怎么办?
编辑:
这是我的 SugarItem 类:
import com.orm.SugarRecord;
public abstract class SugarOrmItem extends SugarRecord {
public abstract int get_id();
}
最佳答案
我认为应该是这样的:
public static <T extends SugarOrmItem> void insert_bookmark(
String prop, T record, ImageView imageView, Class<T> clazz)
{
List<T> thisitem = Select.from(clazz).
where(Condition.prop(prop).eq(record.get_id())).list();
if (thisitem.size() > 0) {
thisitem.get(0).delete();
imageView.setImageResource(R.drawable.ic_bookmark_normal);
} else {
imageView.setImageResource(R.drawable.ic_bookmarkfill);
}
}
关于java - 使用泛型类作为方法输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36954354/