要定义一个泛型方法,参数是不同的枚举对象list,返回枚举中属性string

public > List getEnumProperties(List enumList, Function propertyExtractor) {
    List result = new ArrayList<>();
    for (T enumObj : enumList) {
        result.add(propertyExtractor.apply(enumObj));
    }
    return result;
}

在上述方法中,我们使用了Java 8 中的 java.util.function.Function 函数接口类型,表示对带有一个参数的输入执行操作后返回一个结果。其中,定义了类型参数 > ,表示 T 必须是枚举类型。propertyExtractor 参数是一个函数式接口,它接受一个枚举类型的参数 T 并返回一个字符串,用于抽取枚举对象的属性值。在该方法中,我们将枚举对象列表中的每个对象 enumObj 传递给 propertyExtractor 函数来抽取属性值,并将结果添加到结果列表中。

以 Color 枚举类型为例,我们可以按照以下方式调用上述方法来获取 Color 枚举中的 hexCode 属性值:

List colorList = Arrays.asList(Color.values());
List hexCodeList = getEnumProperties(colorList, Color::getHexCode);
System.out.println(hexCodeList);  // 输出: [#FF0000, #00FF00, #0000FF]

个人转换使用:

public static  > String getEnumProperties(List enumList, Function propertyExtractor,Function propertyExtractor2) {
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < enumList.size(); i++) {
			sb.append(propertyExtractor.apply(enumList.get(i))).append("-").append(propertyExtractor2.apply(enumList.get(i)));
			if (i != enumList.size() - 1) {
				sb.append(",");
			}
			if ((i + 1) % 4 == 0) {
				sb.append("
"); } } return sb.toString(); } String s = EnumUtils.getEnumProperties(list, Status::getIndex, Status::getName);

你可能感兴趣的:(list,前端,windows)