2016-04-20 3 views
0

Какой из них предпочтительнее? статическое поле класса и статическое поле другого класса?

Случай 1.
 public class One{ 
      private static Map<String, String> map; 
      static{ 
       map = new HashMap<String,String>(); 
       map.put("1","One"); 
      } 

      public void print(){ 
       System.out.println(map.get("1")); 
      } 
     } 

Вариант 2:

 public class Constants{ 
     private static Map<String, String> map; 
      static{ 
       map = new HashMap<String,String>(); 
       map.put("1","One"); 
      } 
    } 

    public class Parser{ 
     public void print(){ 
       System.out.println(Constants.map.get("1")); 
      } 
    } 

Я просто пытался имитировать мою проблему. Map будет иметь постоянные значения. Средство статическое не от времени выполнения.

Итак, какой подход лучше всего здесь?

+3

зависит от конструкции. Вы можете делиться картой с другими классами? –

+0

, кстати, карта в вашем втором случае должна быть общедоступной. –

+0

Что вы пытаетесь достичь с помощью этого дизайна? Открытая «Карта» будет изменяться, и я чувствую, что это не то, что вы хотите, верно? – Valentin

ответ

1

Создать открытый класс со статической окончательной картой в нем.

public class Constants{ 
    public static final Map<String, String> map; 
    static{ 
     map = new HashMap<String,String>(); 
     map.put("1","One"); 
    } 
} 
Смежные вопросы