Как вы объединяете геттеры в Java? - PullRequest
0 голосов
/ 06 февраля 2020
public String getPet() {
    public String getName() {
        return name;
    }
    public String getType(){
        return type;
    }
    public String getDescription() {
    }
    return description;
 }

Я хотел бы объединить три геттера в один, чтобы getPet () получал getName (), getType () и getDescription (). Я напечатал это, но что-то не так с моим синтаксисом, который я не могу понять.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

Вы не можете напрямую иметь вложенные методы в Java. Вы можете вызывать столько методов, сколько захотите, внутри метода.

Таким образом, у вас может быть что-то вроде этого

public Pet getPet() {
    getName();
    getType();
    getDescription();
    // create a pet from these method calls and return it i suppose?
}

public String getName() {
    return name;
}
public String getType(){
    return type;
}
public String getDescription() {
    return description;
}

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

1 голос
/ 06 февраля 2020

То, что вы хотите, является избыточным, но здесь есть еще одна забавная, но правильная опция:

public Pet {
...
  public Pet getPet(){
    return this;
  }
}

Затем вы можете получить доступ ко всем вашим методам из getPet (), но, как я уже сказал, это избыточно:

Pet p = new Pet();
Pet q = p.getPet();

Таким образом, из getPet () вы можете получить доступ ко всем другим методам:

p.getPet().getName();
p.getPet().getType();
p.getPet().getDescription();

Но это избыточно, поскольку вы можете получить к ним прямой доступ:

p.getName();
p.getType();
p.getDescription();

Вполне вероятно, есть некоторое недопонимание в отношении объектно-ориентированных основ, которые вы пытаетесь реализовать. Могу ли я предложить, прочитайте: https://docs.oracle.com/javase/tutorial/java/concepts/index.html

...