このC#コードをJavaに書き直すことは可能ですか?C#からJava書き換え - ジェネリッククラス
public interface IEnumerable<out T> : IEnumerable
{
IEnumerator<T> GetEnumerator();
}
名前にパラメータTを持つジェネリッククラスを作成する際に問題があります。私はまた、Javaがサポートしていないパラメータを解決する方法を知りません。どちらのプラットフォームでも経験豊富な人?
このC#コードをJavaに書き直すことは可能ですか?C#からJava書き換え - ジェネリッククラス
public interface IEnumerable<out T> : IEnumerable
{
IEnumerator<T> GetEnumerator();
}
名前にパラメータTを持つジェネリッククラスを作成する際に問題があります。私はまた、Javaがサポートしていないパラメータを解決する方法を知りません。どちらのプラットフォームでも経験豊富な人?
ここout
は、通常の意味でのout
パラメータのためではない - それはIEnumerable<T>
がT
で共変であるという事実を表現ます。たとえば、次のように言うことができます。
IEnumerable<string> strings = new List<string>();
IEnumerable<object> objects = strings;
Javaは一般的なばらつきとは大きく異なります。実際、Javaのジェネリックスは一般的に非常に異なっています。Java Generics FAQをロットのに詳しく見てください。
JavaのIEnumerable<T>
に近い数値はIterable<T>
です。IEnumerable<T>
をコピーするよりもはるかに良いでしょう。 (例えば、Iterable<T>
はJavaの言語サポートを "for for enhanced loop"の形でサポートしています)。
ありがとうございました! – Waypoint
イムないC#のコーダが、コードがうまくいくかもしれない次
public interface IEnumerable<T> {
Iterable<T> getEnumerator();
}
IEnumerableはIterableです。理論的にはIteratorは
等価のIEnumerableはIterableです。あなたはこれを書く必要はありません。 – Stilgar