- Баллы
- 66
- Имя в Minecraft
- _Sweettie_
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
тебе ide намекает, что ты лишний раз создаешь лист при инициализации переменной stashlist, когда в конструкторе передаешь уже другой готовый лист
public class User {
private final Player player;
private final List<Stash> stashes = new ArrayList<>();
public User(Player player, List<Stash> stashes) {
this.player = player;
if (stashes != null) this.stashes.addAll(stashes);
}
}
Я думаю, что лучше сделать так:
А еще я бы переопределил методы equals & hashCode у юзера и стеша + заменил бы коллекцию на HashSet, чтобы стеши были уникальны и не повторялись. И так же стоит заменить игрока на UUID, как посоветовал BukkitProfiPHP:public class User { private final Player player; private final List<Stash> stashes = new ArrayList<>(); public User(Player player, List<Stash> stashes) { this.player = player; if (stashes != null) this.stashes.addAll(stashes); } }
public class User {
private final UUID uniqueId;
private final Map<Integer, Stash> stashes;
public User(UUID uniquieId, Map<Integer, Stash> stashes) {
this.uniquieId = uniquieId;
this.stashes = stashes;
}
public Stash getStash(int id) {
return stashes.get(id);
}
public void addStash(Stash stash) {
stashes.put(stash.getId(), stash);
}
// etc
}
Если не влом каждый раз проверять список на null - делай по своемузачем лишний раз создавать лист, когда можно присвоить уже имеющийся?
И какой толк инициализации поля stashes в твоем случае, если в конструкторе ты его присваиваешь к другой мапе?)зачем лишний раз создавать лист, когда можно присвоить уже имеющийся?
Код:public class User { private final UUID uniqueId; private final Map<Integer, Stash> stashes = new HashMap<(); public User(UUID uniquieId, Map<Integer, Stash> stashes) { this.uniquieId = uniquieId; this.stashes = stashes; } public Stash getStash(int id) { return stashes.get(id); } public void addStash(Stash stash) { stashes.put(stash.getId(), stash); } // etc }
на автоматизме написал, поправил.И какой толк инициализации поля stashes в твоем случае, если в конструкторе ты его присваиваешь к другому?)
При ручной десериализации еще как выдаст, но это будет уже JsonNullна нулл проверяешь при загрузке. а gson не выдаст нулл.
на автоматизме написал, поправил.