Переменная сеанса в Java - PullRequest
       18

Переменная сеанса в Java

0 голосов
/ 28 февраля 2012

Я новичок в Java, поэтому мой вопрос может показаться странным и глупым.Но в любом случае у меня есть несколько форм (классов, которые расширяют JFrame).Я хочу иметь переменную, доступную для чтения и записи во всех формах.Когда я создаю интерфейс и внедряю его в свои формы, все переменные интерфейса доступны в формах, но только для чтения, я не могу присвоить им новое значение.

Вопрос: можно ли вообще сделать это в Java?Если да, то как?

Ответы [ 3 ]

0 голосов
/ 28 февраля 2012

Звучит так, будто вам нужен или одиночный объект, или класс со множеством статических свойств.

Главное, что нужно иметь в виду, это то, что если у вас есть несколько потоков, обращающихся к "глобальным" свойствам, то этодоступ должен быть синхронизирован.

0 голосов
/ 28 февраля 2012

В интерфейсах Java есть только final члены.И это означает, что эти члены являются окончательными.Скорее всего, вы не можете расширить класс, поскольку ваши классы Form расширяют JFrame.Здесь можно использовать промежуточный класс наследования.Посмотрите ниже, например.

class intermediateClass extends JFrame{
 //some code if any

 String name;
 //Getter/Setter
}

class yourForm extends intermediateClass{
 public yourForm(){
  setName("Ddd");
  System.out.println(getName());
 }
}

Но я не буду рекомендовать это лично.Я бы предпочел, чтобы вы использовали другой класс - особенно ваш класс с методом Main для хранения этих переменных.Например, я использую класс Runner для выполнения приложений Java -

class Runner{
 String name;
 public static void main(String[] args) {
  setName("Dchan");
  System.out.println(getName());
 }
 //getter/setter
}

Надеюсь, это поможет

0 голосов
/ 28 февраля 2012

Интерфейсы не имеют переменных, у них есть только final члены - т.е. константы.Вы можете заменить интерфейс классом, и тогда у вас будет доступ к интересующим его членам класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...