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

如何在Kotlin中实现面向接口编程?(附Java示例参考)

在Kotlin中实现面向接口编程(对应Java的List/ArrayList写法)

嘿,这个问题我太熟悉了!在Kotlin里实现和你给出的Java代码类似的面向接口编程,思路和Java完全一致,只是语法上更简洁顺手。

先直接给你对应Java那行代码的Kotlin写法:

val a: List<String> = ArrayList()

这就完全对应Java的List<String> a = new ArrayList<>();——变量a的类型是抽象的List接口,而实际实例是具体的ArrayList实现,完美契合面向接口编程的原则。

Kotlin还提供了更便捷的标准库函数,让你不用手动写ArrayList(),比如:

val a: List<String> = arrayListOf()

arrayListOf()会自动创建并返回一个ArrayList实例,Kotlin的类型推断能帮我们处理泛型,当然你也可以显式指定泛型参数arrayListOf<String>(),效果是一样的。

这里要额外提个Kotlin集合的小知识点:Kotlin里的List是只读接口,如果你需要像Java的ArrayList那样支持添加、删除元素的可变集合,得用MutableList接口:

// 可变版本的写法
val mutableList: MutableList<String> = ArrayList()
// 或者用对应的便捷函数
val mutableList = mutableListOf<String>()

这种只读和可变分离的设计是Kotlin的特色,能避免很多意外修改集合的bug,如果你只是需要遍历、读取集合内容,优先用List就好。

另外要注意,如果省略了变量的类型声明,比如val a = arrayListOf<String>(),Kotlin会把a的类型推断为ArrayList<String>,这就失去了面向接口编程的意义——所以一定要显式声明接口类型(List<String>或MutableList<String>),才能依赖抽象而非具体实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:55:53