Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ArrayListにプリミティブ型が直接addできるみたいなのですが…

きんと申します。

ArrayList<Integer> intLst = new ArrayList<Integer>();
intLst.add(1);

ができました。
びっくりした次第なのですが、これって、どのバージョンからなのでしょうか?
(今はJava10でコンパイルしています)

昔は
intLst.add(new Integer(1));
としないと、コンパイルエラーになった記憶があります。

よろしくお願いいたします(_ _*

3

回答

94

閲覧

3件の回答

評価

0

ちなみに、全ソースは下記となります。

import java.util.ArrayList;

/**
 * サンプルクラス
 */
public class IntToInteger {

    /**
     * ここから始まります。
     */
    public static void main(String[] args){
        IntToInteger sample = new IntToInteger();
        sample.run();
    }

    /**
     * コンストラクタ
     */
    public IntToInteger(){

    } // end IntToInteger

    /**
     * 実行
     */
    public void run(){

        int intA = 0;

        ArrayList<Integer> intLst = new ArrayList<Integer>();

        intLst.add(intA);
        intLst.add(1);

        System.out.println(intLst);

    } // end run

}

C:\Users\KIN\Desktop\サンプル>java -Xmx128M -Xms128M IntToInteger
[0, 1]

評価

0

ずいぶん離れていたのか、それとも各バージョンでの新機能をチェックしていなかったかな。
「オートボクシング」という機能だ。
ぐぐってヒットしたサイトをいくつか当たれば、使用上の注意点も出てくるだろう。

評価

0

質問したきんです。

ご回答いただき、ありがとうございます。

くぐってみました!
1.5なのですね。恥ずかしいかぎりです。

わたしは1.3の世界で今まで生きているので(それで通っていたんですよね…)
どうしても、知らないことがあったりします。

やさしく教えていただき、ありがとうございました

オートボクシング/アンボクシングの難しさは、とりあえず分かりました。
まともに信用して使うと、はまる時があるとのことですね。
もう少し勉強して、きっちりと習得したいと思います。

ありがとうございました(_ _*

回答する

ログインしていません。

ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 アカウントをお持ちでない方は会員登録を行ってください。

ユーザ名匿名