java8 SFunctionT key 输出key的值
在Java 8中,可以使用SFunction函数接口来获取对象的属性值。根据提供的泛型类型T和返回值类型R,SFunction可以定义一个接受T类型参数并返回R类型结果的方法。因此,可以使用SFunction<T, ?>来表示一个接受T类型参数并返回任意类型结果的方法。
要输出key的值,需要使用SFunction的apply方法来获取属性值。例如,假设有一个对象列表List
以下是一个示例代码:
import java.util.List;
import java.util.function.Function;
public class Main {
public static <T> void printKeys(List<T> list, Function<T, ?> keyExtractor) {
for (T obj : list) {
Object key = keyExtractor.apply(obj);
System.out.println(key);
}
}
public static void main(String[] args) {
// 假设有一个对象列表List<Person>
// Person对象具有一个名为name的属性
List<Person> persons = List.of(
new Person("John"),
new Person("Doe"),
new Person("Alice")
);
// 使用SFunction<Person, ?>来获取name属性值
SFunction<Person, ?> keyExtractor = Person::getName;
// 输出name属性值
printKeys(persons, keyExtractor);
}
static class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
}
在上面的示例中,定义了一个名为printKeys的方法,它接受一个对象列表和一个SFunction作为参数。在方法中,使用SFunction的apply方法获取每个对象的key属性值,并将其打印到控制台中。
在main方法中,创建了一个Person对象列表,并使用SFunction<Person, ?>来表示获取name属性值的方法。然后,调用printKeys方法来输出name属性值。输出结果为:
John
Doe
Alice
``
原文地址: https://www.cveoy.top/t/topic/ivEI 著作权归作者所有。请勿转载和采集!