2014-01-20 55 views
0

我正在使用db4o lib来存储数据。如何创建泛型方法

例如我有这样的代码,用于存储数据(即新闻)

public static void insertNewsToDB(Context context, final News news){ 
     final String dbPath = context.getDir("news", Context.MODE_PRIVATE) + "/" + DB4O_NAME; 
     ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), dbPath); 
     try { 
      db.store(news); 
      db.commit(); 
     } finally { 
      db.close(); 
     } 
    } 

,并从数据库中该得到的数据:

public static List<News> getNewsListFromDB(Context context){ 
     final List<News> news = new ArrayList<News>(); 
     final String dbPath = context.getDir("news", Context.MODE_PRIVATE) + "/" + DB4O_NAME; 
     ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), dbPath); 
     try { 
      ObjectSet<News> result = db.queryByExample(News.class); 
      news.addAll(result); 
     } finally { 
      db.close(); 
     } 

     return news; 
    } 

我怎么可以创建方法,所以它不依赖于什么类型我必须通过。更清楚它不取决于第二个参数是新闻,用户或其他东西。当我想从db获得新闻时也是如此。

我读了泛型和cast对象,但我仍然不知道如何做到这一点。

请帮忙。

回答

0

泛型示例。

public class GenericsType<T> { 

    private T t; 

    public T get(){ 
     return this.t; 
    } 

    public void set(T t1){ 
     this.t=t1; 
    } 

    public static void main(String args[]){ 
     GenericsType<String> type = new GenericsType<>(); 
     type.set("Pankaj"); //valid 

     GenericsType type1 = new GenericsType(); //raw type 
     type1.set("Pankaj"); //valid 
     type1.set(10); //valid and autoboxing support 
    } 
}