Randomクラスの謎



 ある日俺は乱数を作ることになった。
そこで、せっかくだから乱数を作るクラスRandomを使ってみようとした。

import java.util.Random;

public class randomTest{
  public static void main(String[] args){
    int j;
    for(int i=0;i<100;i++){
      j=Random.nextInt();
      System.out.println(j);
    }
  }
}

randomTest.java:7: static でない メソッド nextInt() を
static コンテキストから参照することはできません。
j=Random.nextInt();
^
エラー 1 個

・・・なんでだ?7行目が

      j=Math.random();

なら動くのに・・・。


まあいい。static じゃなきゃいいんだな?じゃあインスタンスを作ってそこから呼び出そう。

import java.util.Random;

public class randomTest{
  public static void main(String[] args){
    randomTest rt = new randomTest();
  }
  randomTest(){
    int j;
    for(int i=0;i<100;i++){
      j=Random.nextInt();
      System.out.println(j);
    }
  }
}

randomTest.java:10: static でない メソッド nextInt() を static コンテキストから参照することはできません。
j=Random.nextInt();
^
エラー 1 個

 ・・・・。


なんでじゃぁぁぁぁぁぁ!!!?


 JavaAPIのRandom読んでもその辺の”使用上の注意”とかは全然書いてない!
 ・・・。


 ・・。


 ・。


 はっ!��( ̄ロ ̄;)
 ま、まさか、インスタンスメソッドなのか?nextInt()は!

import java.util.Random;

public class randomTest2{
  public static void main(String[] args){
    int j;
    Random r = new Random();
    for(int i=0;i<100;i++){
      j=r.nextInt();
      System.out.println(j);
    }
  }
}

成功した!


 しちゃったよ・・・・。


 おのれ・・・!!
 どういう理由でインスタンスメソッドにしたか知らないが、
Mathと違う仕様ならそう書いとけぇぇぇぇぇぇ!!!
このカピバラがぁぁぁぁぁぁ!!!


 俺の怒り度はっ


東京ドーム7杯分だコラぁ!!!!