Я делаю мини твиттер.
Один из методов - это конструктор псевдокопирования, и я не совсем понимаю, как это сделать.
Метод принимает существующего пользователя, нового userID
и логический флаг.
Он должен создать нового пользователя с заданным newID
и теми же твитами, что и передаваемый старый пользователь.
Информация о количестве подписчиков или списке пользователей, которым следует старый пользователь, копироваться не должна.
Если флаг false
, сделайте поверхностную копию сообщения старого пользователя ArrayList
, в противном случае сделайте глубокую копию. Никогда не делайте справочную копию.
Все остальные переменные экземпляра должны быть соответствующим образом инициализированы. Это может помочь вам вызвать более ранний конструктор здесь.
Это мои переменные экземпляра и метод конструктора копирования:
public class TwitterUser {
private String userID2;
private ArrayList<Tweet> listTweets;
private ArrayList<TwitterUser> toFollow;
private long numberFollowers;
private int numTweets;
private int numberFollowing;
public TwitterUser(TwitterUser old, String newID, boolean flag) {
}
Я думаю сделать это, но не уверен, что я на правильном пути:
public TwitterUser(TwitterUser old, String newID, boolean flag) {
if (flag == true) {
userID2 = newID;
listTweets = old.listTweets;
toFollow = old.toFollow;
}
}
EDIT
Мне также нужно вернуть мелкую (НЕ справочную или глубокую) копию списка пользователей, за которым следует этот пользователь. Я думал использовать .clone
, но я не уверен, как это сделать. Это конструктор:
public ArrayList<TwitterUser> getFollowing() {
return toFollow.clone();
}