调用"Variable does not exist: String"
时,我在nextOne()
方法上收到错误String.fromCharArray()
。我不确定我是如何失去String的范围或它的静态方法。
public with sharing class NextLetterGenerator {
public List<String> InputArray;
public Map<String, Integer>Letters;
public Map<Integer, String>Numbers;
public UserIdGenerator(String input) {
InputArray = input.toUpperCase().split('');
InputArray.remove(0);
SetLetters();
SetNumbers();
}
public void SetLetters() {
Letters = new Map<String, Integer> {'A' => 1, 'B' => 2, 'C' => 3, 'D' => 4, 'E' => 5, 'F' => 6, 'G' => 7, 'H' => 8, 'I' => 9, 'J' => 10,
'K' => 11, 'L' => 12, 'M' => 13, 'N' => 14, 'O' => 15, 'P' => 16, 'Q' => 17, 'R' => 18, 'S' => 19,
'T' => 20, 'U' => 21, 'V' => 22, 'W' => 23, 'X' => 24, 'Y' => 25, 'Z' => 26
};
}
public void SetNumbers() {
Numbers = new Map<Integer, String> {1 => 'A', 2 => 'B', 3 => 'C', 4 => 'D', 5 => 'E'};
}
public String nextOne() {
if (InputArray[InputArray.size() - 1] != 'Z') {
Integer temp = Letters.get(InputArray[InputArray.size() - 1]);
InputArray[InputArray.size() - 1] = Numbers.get(temp + 1);
}
return String.fromCharArray(InputArray);
}
}
答案 0 :(得分:1)
因此,这是一个错误的编译器错误消息的问题。问题是我没有使用fromCharArray的正确签名。它需要一个整数列表,并且我传递一个字符串列表。从长远来看,无论如何我都不想要这种方法。帮助我得出这个结论的是调用return System.String.fromCharArray(InputArray)
并且它向我显示我可能正在使用该方法的错误签名。希望这有助于其他人调试他们的Apex代码。
答案 1 :(得分:0)
请查看String static methods列表。你可以在这里找到没有签名String.fromCharArray(List<String> charArray)
的方法但存在下一个方法String.fromCharArray(List<Integer> charArray)
/