POJO课程的本质

时间:2017-12-30 13:02:13

标签: android

请我是android的新手,我需要完全理解使用POJO类来填充android中的recyclerview。我这样做的方法是从本地/ API获取数据将其放入2D ArrayList并将其传递给recyclerview的适配器类,例如下面的代码从设备获取音乐并将其添加到音乐2D {{ 1}}:

ArrayList

我对上述方法没有任何问题,它工作正常,但我遇到了一个教程,其中使用了musics.clear(); musicResolver = getActivity().getContentResolver(); Uri musicuri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; Cursor musicCursor = musicResolver.query(musicuri, null, null, null, "LOWER(" + MediaStore.Audio.Media.TITLE + ")ASC"); if (musicCursor != null) { while (musicCursor.moveToNext()) { ArrayList<String> tempmusic = new ArrayList<>(); tempmusic.add(0, musicCursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); long time = Integer.parseInt(musicCursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION))); tempmusic.add(1, (new SimpleDateFormat("mm:ss", Locale.getDefault())).format(new Date(time))); tempmusic.add(2, musicCursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE)); tempmusic.add(3, musicCursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); musics.add(tempmusic); //2d array } musicCursor.close(); } rvAdapter.notifyDataSetChanged(); 类来实现POJO,见下文:

Serializable

使用POJO类检索的方法

public class Audio implements Serializable {

private String data;
private String title;
private String size;
private String duration;

public Audio(String data, String title, String duration, String size) {
    this.data = data;
    this.title = title;
    this.duration = duration;
    this.size = size;
}

public String getData() {
    return data;
}

public String getTitle() {
    return title;
}

public String getDuration() {
    return duration;
}

public String getSize() {
    return size;
}
}

现在我的问题是:

  1. 如果我可以用2d arraylist实现整个操作,那么pojo类的用处是什么。
  2. 如果pojo类实现了serializable,它意味着什么以及它比使用普通的pojo类或只使用2d arraylist的优势
  3. 非常感谢明确的解释,谢谢。

1 个答案:

答案 0 :(得分:1)

  

pojo类的用处是什么

  • 术语&#34; POJO&#34;最初表示一个Java对象,它不遵循任何主要的Java对象模型,约定或框架;如今&#34; POJO&#34;可以用作&#34; Plain Old JavaScript Object&#34; 的首字母缩写,在这种情况下,该术语表示具有相似谱系的JavaScript对象

  • POJO通常很简单,所以不依赖于其他库,接口或注释。这增加了在多个项目类型中重复使用的可能性

详细了解Plain old Java object (POJO)Advantage of POJO

  

如果pojo类实现了serializable,它意味着什么,以及它比使用普通的pojo类或只使用2d arraylist的优势

Serializable

  • 实现java.io.Serializable接口的类启用了类的可序列化。未实现此接口的类将不会将其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。

阅读serialization - advantages and disadvantages