ラッパークラスとオートボクシング
メニューを表示するにはスワイプしてください
Javaでは、int、double、charなどのプリミティブ型はオブジェクトではなく、Objectを継承せず、メソッドも提供しません。しかし、Javaはすべてのプリミティブ型に対してラッパークラスを用意しており、プリミティブ値をオブジェクトとして扱うことができます。主なラッパークラスには、Integer用のint、Double用のdouble、Character用のcharなどがあります。これらのラッパークラスにより、プリミティブ型をArrayListのようなオブジェクトのみを受け入れるコレクションで使用したり、値のパース、変換、比較などのユーティリティメソッドを利用したりできます。
ラッパークラスは、プリミティブ値をオブジェクトのみを受け入れるデータ構造に格納する必要がある場合や、これらのクラスで利用可能なメソッドを活用したい場合に特に有用です。例えば、IntegerクラスにはparseInt、compareTo、toStringなどのメソッドがあります。Javaは、プリミティブ型と対応するラッパー型との間の変換をオートボクシング(プリミティブからラッパーへの変換)およびアンボクシング(ラッパーからプリミティブへの変換)というプロセスを通じて自動的に処理します。この機能により、コードが簡潔になり、手動での変換の必要性が減少します。
Main.java
12345678910111213141516171819202122232425package com.example; import java.util.ArrayList; public class Main { public static void main(String[] args) { // Autoboxing: primitive int to Integer object Integer wrappedInt = 42; // Java automatically wraps the int // Unboxing: Integer object to primitive int int primitiveInt = wrappedInt; // Java automatically unwraps the Integer // Using wrapper objects in a collection ArrayList<Double> numbers = new ArrayList<>(); numbers.add(3.14); // Autoboxing double to Double numbers.add(2.71); // Retrieving and unboxing double first = numbers.get(0); // Unboxing Double to double System.out.println("Wrapped int: " + wrappedInt); System.out.println("Primitive int: " + primitiveInt); System.out.println("Numbers: " + numbers); System.out.println("First number as double: " + first); } }
1. 次のうち、Javaでオートボクシングが発生する状況はどれですか?
2. == や .equals() などのラッパーオブジェクトで Integer と Double を使う場合の主な違いは何ですか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 2
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 2