回答編集履歴

1 追記

umyu

umyu score 5655

2018/07/08 22:27  投稿

スレッドセーフの観点上、あまり複数のクラスで共有するのはおすすめしませんが。
```Java
import java.util.Arrays;
import java.util.Random;
public class A134955 {
   public static Samples sample = new Samples(10); // staticで宣言
   public static final Samples sample = new Samples(10); // staticで宣言
   public static void main(String[] args) {
       new Other();
       new Other();
   }
}
class Other {
   Other() {
       System.out.println(Arrays.toString(A134955.sample.getData()));
   }
}
class Samples {
   private final int[] samples;
   Samples(int size) {
       samples = new Random().ints().limit(size).toArray();
   }
   public int[] getData() {
       // 防御的コピー、明日の天気を絶対に外さない自信があるならcloneは不要。  
       return samples.clone();
   }
   @Override
   public String toString() {
       return Arrays.toString(samples);
   }
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る