Методы считывания/методы set в Java

Попробуйте использовать этот подход

, если i не равен нулю, то только это будет выполнено

var i = this.state.input;
if(i){//then do something

  if (e.which === 13) {
  //    l.push(i)
  this.state.list.push(i);
  }
}
22
задан Peter Mortensen 18 September 2010 в 11:20
поделиться

7 ответов

Нет. Геттеры и сеттеры AS3 - это вещь ECMAScript. В Java вы застряли с функциями стиля getVal () и setVal () - нет никакого синтаксического сахара, чтобы упростить вам задачу.

Я думаю, что Eclipse может помочь автоматически генерировать такие типы вещей, хотя ...

20
ответ дан 29 November 2019 в 04:40
поделиться

Ваш Java-код в порядке, за исключением того, что вы хотите сделать _name частным .

Нет get и задайте ключевых слов в Java, как в вашем примере AS3. Извините, это не лучше того, что вы уже делаете.

Исправленный код:

class Dummy {
  private String _name;

  public void Dummy() {}

  public void Dummy(String name) {
    setName(name);
  }

  public String getName() {
    return _name;
  }

  public void setName(String value) {
    _name = value;
  }
}
10
ответ дан 29 November 2019 в 04:40
поделиться

К сожалению, нет, эквивалентной поддержки на уровне языка в java.

Шаблоны get * и set *, однако, настолько укоренились в культуре Java, что вы найдете для них сильную поддержку IDE (например, eclipse сделает их за вас автоматически), и если вы работаете с чем-то, что использует язык выражений, сначала созданный для jsps (EL), тогда вы сможете использовать нотацию свойств для доступа к геттерам и сеттерам.

3
ответ дан 29 November 2019 в 04:40
поделиться

I would consider not having the getter or setter as they don't do anything in your case except make the code more complicated. Here is an example without getters or setters.

class Dummy {
  public String name;
  public Dummy(String name) { this.name = name; }
}

Dummy dummy = new Dummy("fred");
System.out.println(dummy.name);//getter, prints: fred
dummy.name = "lolo";//setter
System.out.println(dummy.name);//getter, prints: lolo

IMHO Don't make things more complicated than you need to. It so often the case that adding complexity will suffer from You-Aint-Gonna-Need-It

3
ответ дан 29 November 2019 в 04:40
поделиться

В Java единственный вариант, который у вас есть без раскрытия внутренних компонентов вашего объекта, - это создать свои собственные геттеры и сеттеры, как в вашем примере.

По соглашению добавляется ] получить или установить перед изменяемым полем. Итак, как в вашем примере, поле name будет иметь методы getName и setName в качестве соответствующих методов получения и установки соответственно.

2
ответ дан 29 November 2019 в 04:40
поделиться

Также, прежде чем добавлять сеттеры и геттеры, может быть хорошей идеей спросить себя, почему вы раскрываете внутренние данные рассматриваемого объекта.
Предлагаю вам прочитать эту статью - http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html

1
ответ дан 29 November 2019 в 04:40
поделиться

Независимый от IDE способ - использовать Lombok, библиотеку, основанную на аннотации, которая генерирует геттеры, сеттеры и даже equals() и hashcode(). Она делает это для компилятора, но не в исходном файле, так что вам не нужно смотреть на методы, просто используйте их.

3
ответ дан 29 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: