You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中如何声明可返回MutableList或null的函数?

如何声明可返回MutableList或null的函数

嘿,这个问题其实挺常见的,尤其是在处理空输入的边界场景时,不同编程语言的实现方式略有不同,我给你分两种常用情况说明:

Kotlin 实现

Kotlin天生支持空安全类型,直接在返回类型后面加?就能表示这个类型是可空的,刚好符合你要的「要么返回MutableList,要么返回null」的需求:

fun getIntMutableListOrNull(input: Any?): MutableList<Int>? {
    return if (input == null) {
        null // 输入为null时直接返回null
    } else {
        // 这里写你的业务逻辑,返回整数可变列表
        mutableListOf(1, 2, 3)
    }
}

如果需要泛型版本(支持任意类型的MutableList),也可以这么写:

fun <T> getMutableListOrNull(input: T?): MutableList<T>? {
    return input?.let {
        mutableListOf(it) // 输入非null时返回包含该元素的可变列表
    }
    // 输入为null时,?.let会直接返回null
}

调用的时候记得利用Kotlin的空安全特性,比如用安全调用?.避免空指针:

val result = getIntMutableListOrNull(null)
result?.forEach { println(it) } // 若result为null,这段代码不会执行

Java 实现

Java没有原生的空安全语法,但可以通过注解明确标记返回值可能为null,同时直接返回List(因为Java里的ArrayList等实现类本身就是可变的):

import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;

public class ListHelper {
    @Nullable // 注解提示调用者:这个方法可能返回null
    public static List<Integer> getMutableListOrNull(Object input) {
        if (input == null) {
            return null;
        }
        // 返回可变列表,比如ArrayList就是MutableList的典型实现
        return new ArrayList<>(List.of(1, 2, 3));
    }
}

调用时一定要手动做空判断,避免空指针异常:

List<Integer> result = ListHelper.getMutableListOrNull(null);
if (result != null) {
    result.forEach(System.out::println);
}

小提醒

不管用哪种语言,处理这类可空返回值时,一定要在调用端做好空值处理,这是避免空指针问题的关键哦~

内容的提问来源于stack exchange,提问作者James Elkwood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:49:32