Создайте глобальный класс или сохраните строку в месте, которое «имеет смысл». Например, если у вас есть класс обувь вы могли бы сделать это:
public class Shoes {
public static class BRAND {
public static final String NIKE = "nike";
public static final String REBOK = "rebok";
public static final String ADDIDAS = "addidas";
}
private String brand;
public Shoes() {}
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return this.brand;
}
}
Теперь вы можете сделать это:
public static void main(String[] args) {
Shoes myShoes = new Shoes();
myShoes.setBrand(Shoes.BRAND.NIKE);
}
Вы найдете Есть много вещей, как это в Android. Было бы даже лучше, если бы вы использовали перечисления. Надеюсь это поможет.
UPDATE
Если вы хотели бы использовать сеттер и добытчик, то есть 2 решение:
- Первые вы должны экземпляр объекта и так как вы хотите только один экземпляр потребуется один шаблон дизайна. Действительно, если вы правильно синхронизируете и дизайн имеет смысл, они могут быть очень хорошими и полезными. В вашей ситуации я не думаю, что это было бы достойно работы.
Вы можете воспользоваться статическим инициализатором и статическими методами. Вы можете просто удалить итоговую декларацию и делать то, что вы хотите с Струны, как это:
public class Shoes {
public static class BRAND {
public static String NIKE;
public static String REBOK;
public static String ADDIDAS;
static {
NIKE = "nike";
REBOK = "rebok";
ADDIDAS = "addidas";
}
}
private String brand;
public Shoes() {}
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return this.brand;
}
}
Или использовать передовой опыт капсулирования и сделать это:
public class Shoes {
public static class BRAND {
private static String NIKE;
private static String REBOK;
private static String ADDIDAS;
static {
NIKE = "nike";
REBOK = "rebok";
ADDIDAS = "addidas";
}
public static String getNIKE() {
return NIKE;
}
public static void setNIKE(String name) {
NIKE = name;
}
public static String getREBOK() {
return REBOK;
}
public static void setREBOK(String name) {
REBOK = name;
}
public static String getADDIDAS() {
return ADDIDAS;
}
public static void setADDIDAS(String name) {
ADDIDAS = name;
}
}
private String brand;
public Shoes() {}
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return this.brand;
}
}
Однако я должен отметить: Если вы делаете это, потому что вы не можете получить контекст, то вам что-то не хватает. Контекст может быть получен из любого места - объекты, создаваемые системой, получают контекст как параметр. Если у вас есть собственный пользовательский объект, вы можете просто передать ApplicationContext в качестве параметра или класса, используя сам объект (это).
NIKE, REBOK и ADDIDAS - это константы в вашем примере. Но я говорю о переменных ... У меня должна быть возможность получить/установить значение. – Sviatoslav
Я обновлю свое решение для вас. – jjNford