2016-04-30 87 views
0

我有一个反复的代码像下面在不同的地方,我的项目中使用:使用泛型类的方法输入

  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(); 
} 
+0

你从哪里得到的代码? –

回答

2

我认为它需要是这样的:

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); 
    } 
} 
+0

它给了我这个错误:'标识符或预期的类型' – serenei

+0

问题是这部分:''应该在'void'之前工作! – serenei

相关问题