如何使用函数参数:调用特定的getter

我有一个带有名称和品种的狗类。我想根据传递给 printDog 方法的方法参数打印狗的名字或品种。我怎么做?

class Dog  {
  private String name;
  private String breed;

  //constructor

  public String getName()  {
    return name;
  }

  public String getBreed()  {
    return breed;
  }
}
public void printDog(Dog dog, ?)  {
  System.out.println(dog.?);
}
Dog dog = new Dog("Buster", "Shepherd");
printDog(dog, dog::getName);
printDog(dog, dog::getBreed);
Dog dog = new Dog("Buster", "Shepherd");
printDog(dog, dog::getName);
printDog(dog, dog::getBreed);

回答

使用一个Function<Dog, String>. 这表示一个接受 aDog并返回 a的函数String

public void printDog(Dog dog, Function<Dog, String> propertySelector)  {
  System.out.println(propertySelector.apply(dog));
}

你可以完全按照你想要的方式调用它:


以上是如何使用函数参数:调用特定的getter的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>