2016-12-05 12 views
-1

非常に新しいjavaになっていて、プロジェクトが完成したので、どんな助けもありがとう!クラスの新しいオブジェクトを作成し、配列の文字列を使用して名前を付けようとしています。私は、これはそれをやっての奇妙な方法である知っているが、あなたのプログラムは、このように拡張可能であることを示すために持っている特定のマークを取得するために.....すっごく 粒子は、だから私はやりたい文字列配列から新しいオブジェクトの名前を付けよう

public class test1v1 { 

public static void main(String[] args) { 

    double[] iValue = { 1, 2, 0 }; 
    double[] jValue = { 1, 2, 0 }; 
    String[] name = { "earth", "moon", "sun" }; 

    Particle [name[1]] = new Particle(iValue[1],jValue[1]); 

別のクラスでありますループを作り、地球、月、太陽という3つの新しいオブジェクトを作ります。どんな助けでも本当にありがとう!

+1

私はこれに 'Map 'を使うことをお勧めします。 ( 'Map 'むしろ) – CollinD

+0

これはできません。 – shmosel

+1

@CollinD 'Map '、という意味ですか? –

答えて

0

ここで希望する内容を正確に行うことはできませんが、同様の効果を得るにはMapを作成することができます。

double[] iValue = { 1, 2, 0 }; 
double[] jValue = { 1, 2, 0 }; 
String[] name = { "earth", "moon", "sun" }; 
Map<String, Particle> heavenlyBodies = new HashMap<>(); 

for (int i = 0; i < name.length; i++) { 
    heavenlyBodies.put(name[i], new Particle(iValue[i], jValue[i])); 
} 

これらの粒子は、そのように

Particle earth = heavenlyBodies.get("earth"); 

Map<K, V>のためのドキュメントを参照してください。必要に応じて、以下のようにして取得することができます。https://docs.oracle.com/javase/7/docs/api/java/util/Map.html

0

CollinDの答えに追加するには、ここでの問題は、あなたができないですあなたのプログラムの目的のために実行時に使用される、プログラムのコンパイルされたコードに格納されているリテラル値(例えば、 "earth"、 "moon"、 "sun")を、単純なキーワードである変数の名前あなたのソースコード変数に意味のある名前を付けると、コードを理解しやすくなります。

マップを使用すると、実行時に名前付き変数を格納する方法を作成できます。

関連する問題