gpt4 book ai didi

generics - 如何在Kotlin中为主要构造函数指定类型参数?

转载 作者:行者123 更新时间:2023-12-02 13:03:21 27 4
gpt4 key购买 nike

在Java中,我可以执行以下操作:

import java.util.List;
import java.util.Map;

class Foo {
public final String s;

// Parameters to constructor are generic, but constrained
public <K> Foo(List<K> list, Map<K, String> map) {
// Compute something from those parameters where result
// has type independent of input type parameters.
StringBuilder sb = new StringBuilder();
for (K k : list) {
sb.append(map.get(k));
}
s = sb.toString();
}
}

请注意, Foo类没有类型参数,但是其构造函数具有类型参数。在Kotlin中可以做一些等效的事情吗?

最佳答案

Kotlin不支持构造函数的类型参数,因此您可以定义一个工厂函数:

class Foo private constructor(val s: String) {
companion object {
fun <K> create(list: List<K>, map: Map<K, String>) =
Foo(list.map { map[it] }.joinToString(""))
}
}

关于generics - 如何在Kotlin中为主要构造函数指定类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40120625/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com