Java泛型如何与Lambda表达式结合使用

发布时间:2025-03-16 16:32:06 作者:小樊
来源:亿速云 阅读:110

Java泛型与Lambda表达式可以很好地结合使用,为代码提供更高的灵活性和简洁性。Lambda表达式是Java 8引入的一种新的特性,它允许我们将函数作为参数传递给其他函数。泛型则是一种参数化类型,它允许我们在编译时定义和检查类型安全。

以下是一些Java泛型与Lambda表达式结合使用的示例:

  1. 使用泛型接口与Lambda表达式:
// 定义一个泛型接口
@FunctionalInterface
public interface MyFunction<T, R> {
    R apply(T t);
}

public class Main {
    public static void main(String[] args) {
        // 使用Lambda表达式实现泛型接口
        MyFunction<String, Integer> stringLengthFunction = (String s) -> s.length();
        System.out.println(stringLengthFunction.apply("Hello, world!")); // 输出:13
    }
}
  1. 使用泛型方法与Lambda表达式:
public class Main {
    public static void main(String[] args) {
        // 使用Lambda表达式调用泛型方法
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        List<Integer> nameLengths = map(names, (String name) -> name.length());
        System.out.println(nameLengths); // 输出:[5, 3, 7]
    }

    // 定义一个泛型方法,接受一个列表和一个函数作为参数
    public static <T, R> List<R> map(List<T> list, MyFunction<T, R> function) {
        List<R> resultList = new ArrayList<>();
        for (T item : list) {
            resultList.add(function.apply(item));
        }
        return resultList;
    }
}
  1. 使用泛型约束与Lambda表达式:
public class Main {
    public static void main(String[] args) {
        // 使用Lambda表达式调用具有泛型约束的方法
        List<Number> numbers = Arrays.asList(1, 2.0, 3L, 4.0f);
        double sum = sumOfNumbers(numbers, (Number number) -> number.doubleValue());
        System.out.println(sum); // 输出:10.0
    }

    // 定义一个具有泛型约束的方法,接受一个列表和一个函数作为参数
    public static double sumOfNumbers(List<? extends Number> list, MyFunction<Number, Double> function) {
        double sum = 0;
        for (Number number : list) {
            sum += function.apply(number);
        }
        return sum;
    }
}

这些示例展示了如何将Java泛型与Lambda表达式结合使用,以实现更简洁、灵活的代码。

推荐阅读:
  1. vscode能不能用来写java代码
  2. vscode运行java文件的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Java泛型中的桥方法是什么

下一篇:Java泛型如何提高代码复用性

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》