むかーしむかし、Microsoft Visual J++という道具があったそうな...
その道具では、関数呼出の参照渡しを実現するために、配列を渡してJNI内部で値を設定するといった、奇怪な手法が使われておりましたとさ。
さて話は現代に移り、Microsoft Visual J#という道具が巷では出回っていると聞き、さっそく試した私は、腰を抜かしてしまいそうになりました。
public class Test
{
public static void test1(int a) { a = 2; }
public static void test2(/** @ref */ int a) { a = 2; }
public static void main(String[] args) {
int b = 3;
test1(b); System.out.println(b);
test2(b); System.out.println(b);
}
}
まさか、こんな結果になりますとは...Javaという言語仕様まで変えてしまうとは...
おそろしや、おそろしや...
#まぁ、Javaって言ってない(J#)から、いいんですか...
#そうですか...