Как получить глобальную ссылку на массив, не зная заранее его размера? - PullRequest
0 голосов
/ 04 марта 2019

Я застрял в ситуации, когда мне нужна глобальная ссылка на массив, но я узнаю его размер только после того, как пользователь введет его.

Я попытался создать другой класс и выполнитьчто-то, но проблема остается той же, я могу объявить только локальный массив, так как у меня нет его размера заранее.

Что можно сделать?

1 Ответ

0 голосов
/ 04 марта 2019

Вы можете использовать провайдера, который содержит массив и предоставляет доступ к нему через статический метод getter.Примерно так:

public class MyGLobalArrayProvider {
    private static String[] myGlobalArray;

    public static String[] getGlobalArray() {
        return myGlobalArray;
    }


    public static void doSomeUpdateMagic() {…}
}  

Как правило, я бы предпочел решение, использующее Dependency Injection с Guice или Spring.В этом случае вы бы внедрили одноэлементную службу, которая содержит массив.Это отсоединит ваш код, который не только полезен для тестирования, но и приведет к лучшей сохранности.

Другим классическим подходом будет шаблон Singleton-Pattern, если DI-подход неоправданно тяжел.

...