Android领域:从领域对象中检索集合ID

时间:2017-02-01 20:25:02

标签: android realm

我已将用户保存到领域。当我查询用户时,我得到了这个对象:

User{id=0, hairColor=Red, favoriteSongs=FavoriteSong@[16,17]}

当我想要最喜欢的歌曲列表时,领域可以轻松获得列表:

mUser.getFavoriteSongs();

但我想获得一组用户最喜欢的歌曲。这样可以很容易地将包作为 int [] 传递。

Realm中有可能吗?

1 个答案:

答案 0 :(得分:1)

我建议你两个选择:

  1. 创建一个帮助迭代歌曲列表的助手并返回一个id列表。

    class SongHelper {
    
        public static List<Integer> getSongIds(List<Song> songs) {
            List<Integer> songIds = new ArrayList<>();
            for( Song song : songs )
               songIds.add( song.getId() );
    
            return songIds;
        }
    
    }
    
  2. 覆盖getFavoriteSongs方法并使其返回List<Integer>而不是List<Song>,或在用户中为此创建其他方法。

  3. 选项1更优雅。您应始终保持模型类尽可能干净。换句话说,只需声明没有业务逻辑的属性,getter和setter。