В чем проблема использования экземпляра следующего класса для обмена между потоками? - PullRequest
0 голосов
/ 20 февраля 2020

Меня спрашивают, в чем проблема использования экземпляра следующего класса для обмена между потоками. Каковы риски? И каковы возможные решения?

public class States {

    private String[] states = new String[] {
        "UNK", "NEW", "RUNNING", "DONE"
    };

    public String[] getStates() {
        return states;
    }
}

1 Ответ

0 голосов
/ 20 февраля 2020

Проблема с этим кодом состоит в том, что хотя массивы неизменны в java, но поскольку вы предоставляете ссылку на массив, ничто не мешает кому-либо переназначить весь массив новым. Для этого случая лучше использовать классы enum.

...