Константы в Java - PullRequest
       1

Константы в Java

0 голосов
/ 04 апреля 2011

Как объявить массив, в котором все значения (или объекты) являются постоянными в java.

Например, например: a [0] является константой, a [1] является константойи т.д ....

Ответы [ 5 ]

7 голосов
/ 04 апреля 2011

Как насчет использования Enum?

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, 
    THURSDAY, FRIDAY, SATURDAY 
}

http://download.oracle.com/javase/tutorial/java/javaOO/enum.html

4 голосов
/ 04 апреля 2011

Вы хотите сказать, что не хотите, чтобы массив был модифицируемым? Ты не можешь Java не поддерживает концепцию const в стиле C ++. Вы должны использовать какую-то коллекцию только для чтения. Точно так же вы не можете объявить, что элементы массива должны использоваться только только для чтения (т.е. не подвергаться мутированию сами по себе, что отличается от изменения массива для изменения элементов внутри него).

Если вы дадите нам больше информации о том, что вы пытаетесь сделать, мы можем предложить альтернативный подход.

3 голосов
/ 04 апреля 2011

Вы можете объявить весь массив как константу, но не содержимое этого массива.

Решение вашей проблемы: используйте неизменяемый список вместо массива (если это возможно). Это гарантирует, что сохраненные значения не могут быть «заменены».

(что означает: если вы храните объекты, вы все равно сможете изменять свойства этих объектов, но сами не можете добавлять, удалять или заменять объекты.)

0 голосов
/ 14 июня 2013

Полагаю, есть достойный способ, которым мы можем этого достичь. Я бы предложил создать класс с закрытым конечным массивом и предоставить открытый метод для чтения любого элемента массива. Таким образом, вы сможете запретить пользователям изменять ваши значения, потому что вы устанавливаете только геттер без предоставления его. Надеюсь, это поможет !!!

Константы класса {

private Constants(){
    throw new AssertionError("This class is not meant for instantiation");
}

private static final int[] myConstants = {3, 5, 8, 9, 23};

public static int getMyConstant(int i){
    return myConstants[i];
}

}

Используйте константы, такие как Constants.getMyConstant (index)

Я бы сказал, Enum - лучший способ хранить константы. Тем не менее, приведенная выше реализация может быть полезна ниже JDK5. Надеюсь, это поможет !!!

0 голосов
/ 04 апреля 2011

вы используете ключевое слово final для объявления константы в Java

например. final Stirng sr="hello";

...