我已将用户保存到领域。当我查询用户时,我得到了这个对象:
User{id=0, hairColor=Red, favoriteSongs=FavoriteSong@[16,17]}
当我想要最喜欢的歌曲列表时,领域可以轻松获得列表:
mUser.getFavoriteSongs();
但我想获得一组用户最喜欢的歌曲。这样可以很容易地将包作为 int [] 传递。
Realm中有可能吗?
答案 0 :(得分: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;
}
}
覆盖getFavoriteSongs方法并使其返回List<Integer>
而不是List<Song>
,或在用户中为此创建其他方法。
选项1更优雅。您应始终保持模型类尽可能干净。换句话说,只需声明没有业务逻辑的属性,getter和setter。