独学でjavaを学んでいます。
以下のコードについて、拡張for文の()内が穴あき(選択肢は後述します)で出題され、回答は判別できたのですが、解説に
選択肢Bは、2次元配列の集合から取り出した2次元目の配列を受け取る必要があるにもかかわらず、String型で変数を宣言しています。配列とStringには互換性がないため、コンパイルエラーが発生します。よって、選択肢Bも誤りです。
と記載がありましたが、「配列とStringには互換性がないため、コンパイルエラーが発生します。」という部分について、なぜ互換性が無いのか理解できません。
お手数ですが、なぜ互換性が無いことになるのか教えていただけないでしょうか。
(もしくはルールとして覚えるほかないのでしょうか。)
public class Main { public static void main (String[] args) { String[][] array = { { "A", "B", "C" } }; for( Object obj : array ) { System.out.print(obj); } } }
選択肢
A: Object obj : array
B: String str : array
C: String[] array : array
D: array : Object obj
E: array : String str
F: array : String[] array
以上となります。
初歩的な質問で恐縮ですが、宜しくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。