LINUX.ORG.RU

[java] Определение констант

 


0

0

Собственно нужно задать некоторое кол-во констант (около 50). Как лучше всего это сделать? У меня идея возникла определить статический класс, например

public static MyConstants();

и в нем задать их. Это правильный подход (идеологически) или есть методы получше?

anonymous

Ответ на: комментарий от imp

> enum ?

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

ps (константы -- административно-территориальные единицы)

anonymous
()

> статический класс

Что это?

> ps (константы -- административно-территориальные единицы) 

public class AdministrativoTerritorialnayaEdinitsa
{
private AdministrativoTerritorialnayaEdinitsa()
{
...
}
public static final administrativoTerritorialnayaEdinitsa1 = new AdministrativoTerritorialnayaEdinitsa();

public static final administrativoTerritorialnayaEdinitsa2 = new AdministrativoTerritorialnayaEdinitsa();

...

}

anonymous
()
Ответ на: комментарий от anonymous

Надо ещё предусмотреть возможность вызова .clone() и сериализации/десериализации - и тогда у тебя гарантированно нигде не возникнет других инстанций этого класса, таким образом, например, в функцию, имеющую параметр такого типа *гарантированно* не придёт ничего левого. Их можно, например, использовать как ключи в хэш-таблице.

anonymous
()
Ответ на: комментарий от anonymous

а зачем вообще инстанцировать этот класс? зачем вообще использовать класс?

я бы использовал интрефейс - ИМХО накладных расходов меньше
public interface globalConstants {
public static final int CODE = 999;
public static final String TA_UNIT_LO = "Ленинградская область";

}

vyv ★★★
()
Ответ на: комментарий от vyv

> я бы использовал интрефейс

H&K делать такое не советуют.

Я решил использовать enum, всем спасибо за помощь.

anonymous
()
Ответ на: комментарий от Absurd

Киллер нужен тебе, это стёб же.

anonymous
()

В качестве варианта можно рассмотреть вынесение этих констант в конфигурационный файл.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.