我有一个有名字和品种的狗班。我想根据传递给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);
使用 Function<Dog, String> Dog 返回一个 String
Function<Dog, String>
Dog
String
public void printDog(Dog dog, Function<Dog, String> propertySelector) { System.out.println(propertySelector.apply(dog)); }
你可以按照你想要的方式来称呼它: