Каков сценарий использования метода типа интерфейса, тип возвращаемого имени которого совпадает с именем, к которому он принадлежит? - PullRequest
0 голосов
/ 04 мая 2018

Я видел где-то при просмотре фрагментов кода, но у меня не было возможности задать варианты использования, и я не мог понять, как этот интерфейс будет реализован. Когда вы переопределяете метод A () тогда вы должны вернуть что-то, что реализует Feature . Пример ниже,

 public interface Feature
 {  
        public Feature A(); 
 }

Любой совет будет отличным. Заранее спасибо ..

1 Ответ

0 голосов
/ 04 мая 2018

Вы могли бы сделать что-то вроде этого

public class MyClass implements Feature {

  public Feature A() {
    //do stuff
    return this; //since MyClass implements Feature we could return this
  }
}

Как уже упоминалось @daniu, это можно использовать для цепочки методов. Вы можете проверить код для StringBuilder. Из-за append(String s) возврата экземпляра StringBuilder вы можете сделать это

StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" ").append("world");

вместо следующего кода, если apeend() вернул void

StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("world");
...