私は、クローンメソッドを使用するときは、CloneNotSupportedExceptionをキャッチすることになっていることを知っています。しかし、私は最近、配列の.clone()を呼び出すだけで、ランダムな整数の配列を複製しようとしました。 try-catchブロックは必要ありませんでした。コードは次のようなものでした:CloneNotSupportedExceptionをキャッチせずにクローンメソッドを使用する
import java.util.Arrays;
import java.util.Random;
public class ClonePractice
{
public static void main(String[ ] args)
{
int[ ] A = new int[100];
Random random = new Random();
for(int i = 0; i < 100; i++)
A[i] = 1 + random.nextInt(100); //Get random integer between 1 and 100.
int[ ] B = A.clone();
B[0] = 1000;
System.out.println(Arrays.toString(A));
System.out.println(Arrays.toString(B));
// Arrays A and B should have different first values because they are
// independent objects in memory.
} // End of main method.
} // End of ClonePractice class.
このコードは美しくコンパイルされ、実行されます。しかし、try-catchブロック内でCloneNotSupportedExceptionをキャッチする必要はありません。誰かが、なぜこの例外をキャッチするかについての "ルール"の例外である理由を説明できますか?ありがとうございました!!! Object.clone()
ため
コンパイラは、配列は常にクローン可能であることを知っているため、配列の 'clone()'は 'CloneNotSupportedException'を生成しません。 – khelwood
"クローンメソッドを使用する場合は、CloneNotSupportedExceptionをキャッチするはずです。 –