java我要封装一个方法,入参是list对象和一个对象中的属性,这个属性可能是String类型的数字,返回值是那个属性的最大值
时间: 2024-05-14 15:18:59 浏览: 90
可以参考以下代码实现:
```java
public static <T> double getMaxValue(List<T> list, Function<T, String> propertyGetter) {
double max = Double.MIN_VALUE;
for (T item : list) {
String valueStr = propertyGetter.apply(item);
double value = Double.parseDouble(valueStr);
if (value > max) {
max = value;
}
}
return max;
}
```
这个方法的泛型类型 `<T>` 表示输入的对象类型,`Function<T, String>` 表示获取属性值的函数类型,其中 `T` 是输入对象类型,`String` 是属性类型。
调用这个方法的示例代码如下:
```java
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", "90"));
students.add(new Student("Jerry", "80"));
students.add(new Student("Mike", "95"));
double maxScore = getMaxValue(students, Student::getScore);
System.out.println("Max score: " + maxScore);
```
其中 `Student` 类是一个示例类,它包含了姓名和成绩两个属性,其中成绩属性是字符串类型的数字。`getMaxValue` 方法通过传入 `students` 列表和 `Student::getScore` 函数,获取学生列表中成绩属性的最大值。
阅读全文