2016-04-30 2 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

関連する問題