この投稿では、Javaで参照によって整数を渡す方法について説明します。

Cでは、ポインターを使用して参照によって引数を渡すことができ、C++でも参照を使用して同じことができることがわかっています。

Javaは値渡しであり、Javaでは参照によってプリミティブを渡すことはできません。また、 Integer クラスはJavaでは不変であり、Javaオブジェクトは値によって渡される参照です。したがって、Integerオブジェクトは、呼び出し元とまったく同じオブジェクトを指しますが、オブジェクトに変更を加えることはできません。これは、呼び出し元の関数に反映されます。

1.カスタムラッパークラスを作成します

ここでの考え方は、整数値を可変オブジェクトでラップすることです。これを行うには、プリミティブをメンバーフィールドとして含む参照クラスを作成するだけです。これを以下に示します。

ダウンロード  コードを実行する

出力:

10

2.プリミティブ値をアレイにラップする

長さ1のアレイを使用して、プリミティブをラップすることもできます。

ダウンロード  コードを実行する

出力:

11

3.使用する AtomicInteger

または、プリミティブ整数を次のように置き換えることもできます。 AtomicInteger オブジェクト、組み込み Java パッケージに含まれるクラス java.util.concurrent.atomic、単一変数でのロックフリースレッドセーフプログラミングをサポートする他のいくつかのクラスとともに。シングルスレッド環境では、これがパフォーマンスに影響を与える可能性があることに注意してください。

ダウンロード  コードを実行する

出力:

10

4. ApacheCommonsLangの使用

最後に、 MutableInt ApacheCommonsライブラリのクラス。パッケージで定義されています org.apache.commons.lang3.mutable.

コードをダウンロード

出力:

6

これは、Javaで参照によって整数を渡すことについてのすべてです。