gpt4 book ai didi

C# 到 Java 重写——泛型类

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:07 24 4
gpt4 key购买 nike

是否可以将此 C# 代码重写为 java?

public interface IEnumerable<out T> : IEnumerable
{

IEnumerator<T> GetEnumerator();
}

我在创建名称中带有参数 T 的泛型类时遇到问题。我也不知道,如何解决 out 参数,Java 不支持。有人对这两个平台都有经验吗?

最佳答案

out这里不是 out通常意义上的参数 - 它表达了 IEnumerable<T> 的事实在 T 中是协变的.这让你可以说,例如:

IEnumerable<string> strings = new List<string>();
IEnumerable<object> objects = strings;

基本上,Java 以非常不同的方式处理泛型变体。事实上,Java 中的泛型大体上非常不同 - 看看 Java Generics FAQ了解更多详情。

近似于 IEnumerable<T>在 Java 中是 Iterable<T> - 使用它比复制 IEnumerable<T> 要好得多穿过。 (例如,Iterable<T> 以“增强的 for 循环”的形式在 Java 中提供语言支持。)

关于C# 到 Java 重写——泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8983973/

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