#java #arraylist
#java #список массивов
Вопрос:
У меня есть вызываемый класс Hand
и другой класс для его тестирования. Hand
использует глобальные переменные и изменяет их значения с помощью некоторых методов, если в тесте класса я создаю две переменные Hand
класса, изменения в одной из переменных повлияют на другую. Как я могу отделить их друг от друга ?
Класс Hand
:
private static List<Card> hand = new ArrayList<Card>();
Класс Test
:
Hand hand1 = new Hand();
Hand hand2 = new Hand();
Если я добавляю значения в hand1
arraylist, это также изменяет значения hand2
arraylist.
Могу ли я их разделить?
Ответ №1:
Превратите private static List<Card>
в private List<Card>
.
Ответ №2:
Сделайте private List<Card> hand = new ArrayList<Card>();
переменную экземпляра as, а затем сделайте ее статической..
Потому что static является свойством класса, а переменные экземпляра являются свойством объекта… который отличается для разных объектов .. но в случае статического они одинаковы для всех объектов..
Ответ №3:
Удалите static
модификатор, который является общим для всех экземпляров класса, загруженных в конкретный загрузчик классов.
Ответ №4:
static
Ключевое слово делает переменную в области класса, а не в области экземпляра. Это означает, что одно и то же значение является общим для всех экземпляров класса. Нестатический член является специфичным для каждого экземпляра класса. Удалите static
ключевое слово, и вы получите желаемое поведение.