その場で変数を宣言する方法を見つけた人はいますか?
無限にできる変数がいくつかあります...
val1
val2
val3
val4...
これらをオンザフライで作成する方法はありますか...
for(loop though){
val + '1' = dosomething('1')
}
上記のようには見えないことはわかっていますが、要点を理解していただければ幸いです。
その場で変数を宣言する方法を見つけた人はいますか?
無限にできる変数がいくつかあります...
val1
val2
val3
val4...
これらをオンザフライで作成する方法はありますか...
for(loop though){
val + '1' = dosomething('1')
}
上記のようには見えないことはわかっていますが、要点を理解していただければ幸いです。
Apex はコンパイルされた言語であり、解析/動的言語ではありません。JavascriptやPHPなどでそのようなことを行うことはできますが、(私の知る限り)Javaではできません。突き詰めると、Salesforce は Oracle データベースと Java 上に構築されているため、Apex は、彼らが最も必要と考えた Java 呼び出しのシン ラッパーのようなものです。
好奇心から - なぜそれが必要なのですか?
シーケンシャルアクセスが必要な場合は、ループでジェレミーのアイデアを使用してください。または...
「一意のキー -> 何らかの値」が必要な場合は、Maps を使用します。
Map<String, Double> myMap = new Map<String, Double>();
for(Integer i = 1; i < 10; ++i){
myMap.put('someKey' + String.valueOf(i),Math.floor(Math.random() * 1000));
}
System.debug(myMap);
System.debug(myMap.get('someKey7'));
この例の "double" は、Integer、Id、Account、MyCustomClass など、関数が返すものと同じです。
データが外部ソースからのものである場合に役立つと思われるもう 1 つのトリックがあります。任意の種類のデータ (文字列に保持されている) を選択したコレクションにキャストできる JSON / XML パーサーを使用することです。リスト/マップのアイデアに戻りますが、事前にこの文字列をどのように構築/取得するかは完全にあなた次第です。最初にJSON メソッドについて読んでください。ただし、予測可能なパターンに従った構造がない場合は、JSON/XML パーサーを確認してください (ここをクリックして、下にスクロールして例を参照してください)。
これは頂点では不可能です。ただし、リストを使用できます。
List<String> values = new List<String>();
for (Integer i = 0; i < aList.size(); i++) {
values.add(dosomething(i));
}