首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Studio: List.of()‘调用需要API级别...’

问题背景

List.of() 是 Java 9 引入的一个方法,用于创建一个不可变的列表。然而,在 Android 开发中,由于 Android 平台的版本多样性,某些方法可能并不适用于所有版本的 Android。

基础概念

List.of() 是 Java 9 中的一个静态工厂方法,用于创建一个不可变的列表。这个方法返回的列表是线程安全的,并且不能被修改。

相关优势

  1. 不可变性:不可变列表在多线程环境中更安全,因为它们不会被意外修改。
  2. 简洁性:使用 List.of() 可以更简洁地创建列表,而不需要使用 Arrays.asList() 或其他方法。
  3. 性能:不可变列表在某些情况下可以提供更好的性能,因为它们不需要维护修改操作。

类型

List.of() 可以接受任意数量的参数,并返回一个包含这些参数的不可变列表。它支持基本数据类型和对象类型。

应用场景

在需要创建不可变列表的场景中使用 List.of(),例如:

  • 配置数据
  • 常量集合
  • 函数返回值

问题描述

当你在 Android Studio 中使用 List.of() 时,可能会遇到以下错误信息:

代码语言:txt
复制
'List.of()' requires API level 26 (current min is ...)

这个错误信息表示 List.of() 方法需要 API 级别 26 或更高,而你的项目当前的最小 API 级别低于 26。

原因

Android 平台的每个版本都有不同的 API 级别,某些方法只适用于特定的 API 级别。List.of() 是 Java 9 引入的方法,而 Java 9 对应的 Android API 级别是 26。

解决方法

  1. 提高最小 API 级别: 在 build.gradle 文件中,将 minSdkVersion 设置为 26 或更高:
  2. 提高最小 API 级别: 在 build.gradle 文件中,将 minSdkVersion 设置为 26 或更高:
  3. 使用替代方法: 如果你不能提高最小 API 级别,可以使用 Arrays.asList() 结合 Collections.unmodifiableList() 来创建不可变列表:
  4. 使用替代方法: 如果你不能提高最小 API 级别,可以使用 Arrays.asList() 结合 Collections.unmodifiableList() 来创建不可变列表:

示例代码

代码语言:txt
复制
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ImmutableListExample {
    public static void main(String[] args) {
        // 使用 List.of()(适用于 API 级别 26 及以上)
        List<String> list1 = List.of("item1", "item2");

        // 使用 Arrays.asList() 和 Collections.unmodifiableList()(适用于所有 API 级别)
        List<String> list2 = Collections.unmodifiableList(Arrays.asList("item1", "item2"));

        System.out.println(list1);
        System.out.println(list2);
    }
}

参考链接

希望这些信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券