java - 使用泛型类作为方法输入

标签 java android abstract-class

我有一个如下所示的迭代代码,用于我项目的不同位置:

            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/

相关文章:

java - 如何在迭代此集合时避免 ConcurrentModificationException?

java - 如何在 Gradle 中使用不同的系统属性值多次运行测试

java - 减少 Java 中同步块(synchronized block)的范围意外地损坏了我的 ArrayList,为什么会出现这种情况?

c++ - 在 C++ 中使用抽象库

java - 是否可以使用 Mongodb java 的 json 对象填充其他字段?

android - 谷歌云端点 : verifyToken: Signature length not correct

android - 具有微调器样式的 Materialdatepicker

java - 动态设置textview的宽度

java - 具有 new 的 Date 构造函数的抽象类

oop - 接口(interface)和抽象类有什么区别?