有没有人找到一种动态声明变量的方法?
我有一些变量可以是无限的......
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 调用的一种精简包装器。
只是出于好奇——你为什么需要那个?
如果您需要顺序访问,请使用 Jeremy 的想法和循环。或者...
如果您需要“唯一键 -> 某个值”,请使用 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'));
此示例中的“双精度”可以同样是 Integer、Id、Account、MyCustomClass ......无论您的函数返回什么。
如果您的数据来自外部来源,我还能想到另一个技巧可能会有所帮助。它使用 JSON / XML 解析器,可以将任何类型的数据(保存在字符串中)转换为您选择的集合。它有点回到 List/Map 的想法,但完全取决于你如何事先构建/检索这个字符串。首先阅读JSON 方法,但如果您没有遵循可预测模式的结构,您可能需要查看 JSON/XML 解析器(单击此处并向下滚动到示例)。
这在顶点是不可能的。但是,您可以使用列表:
List<String> values = new List<String>();
for (Integer i = 0; i < aList.size(); i++) {
values.add(dosomething(i));
}