Java(Ja.NET)の中の.NET
Java側から.NETライブラリを使えますが、色々面倒なことが発生します。試しにSystem.Generic.List
// import System.*とかやらかすと、JavaのStringと.NETのStringが衝突してしまうので注意 import System.Console; import System.Int32; import System.Collections.Generic.*; public class GenericTest { public static void main(String[] args) { // javaのプリミティブ型はGenericsの型として受け入れてくれない模様 // List<int> list = new List<int>(); // NG. // なので.NETの値型を渡す List<Int32> list = new List<Int32>(); // Javaの型でもクラスならOK // List<Integer> list = new List<Integer>(); // OK. for (int i = 0; i < 10; ++i) list.Add(i * i); // Can only iterate over an array or an instance of java.lang.Iterable // IEnumerable<T> -> Iterable<T>の変換はやってくれない模様。 /* for (int i : list) Console.WriteLine (i); */ // プロパティアクセスはget_XXX()形式になる for (int i = 0; i < list.get_Count(); ++i) { // String + Int32のAutoboxingはしてくれないので、 // Int32 -> intへのキャストをしている // このキャストは妥当の模様 Console.WriteLine ("No." + (int)list.get_Item(i)); } } }