ホームページ > Java > &#&チュートリアル > Java で文字列値を使用して変数名を動的に作成できますか?

Java で文字列値を使用して変数名を動的に作成できますか?

Patricia Arquette
リリース: 2024-11-03 10:40:29
オリジナル
587 人が閲覧しました

Can I Dynamically Create Variable Names in Java Using a String Value?

文字列値を使用して変数名を作成する

Q: 文字列値を使用して変数名を動的に作成することは可能ですか? Java?

たとえば、次のコードがあるとします。

<code class="java">String name = "dog";
dog name = new dog();</code>
ログイン後にコピー

「name」を文字列として解釈し、新しく作成された「dog」オブジェクトに割り当てるように Java に指示するにはどうすればよいでしょうか?

A: PHP などの一部のスクリプト言語ではそのような動作が許可されていますが、Java では許可されていません。 Java では、変数名は、特定のオブジェクトへのアクセスを提供する変数参照とは異なります。

必要な機能を実現する 1 つの方法は、マップを利用して文字列をオブジェクトに関連付けることです。例:

<code class="java">Map<String, Dog> dogMap = new HashMap<>();
dogMap.put("Fido", new Dog("Fido"));

Dog myPet = dogMap.get("Fido");</code>
ログイン後にコピー

あるいは、配列、ArrayList、LinkedList、その他のコレクションなどのオブジェクトへの参照を取得する方法は他にも多数あります。

さらなる説明:

目的が、作成後も存続する任意の名前を持つオブジェクトを動的に作成することである場合、変数名は「オブジェクト名」と同義ではないことを理解することが重要です。 「fido」と「spot」の両方の変数は、名前が異なっていても、同じオブジェクトへの参照を保持します。

<code class="java">Dog fido = new Dog;
Dog spot = fido; // now fido and spot refer to the same object</code>
ログイン後にコピー

各オブジェクトに「名前」を割り当てるには、「name」プロパティを追加することを検討してください。

<code class="java">class Dog {
   private String name;

   public Dog(String name) {
      this.name = name;
   }

   public String getName() {
      return name;
   }
}</code>
ログイン後にコピー

これにより、各 Dog オブジェクトに独自の一意の名前を付けることができます。

以上がJava で文字列値を使用して変数名を動的に作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート