Получение переменной не существует: строка в методе вершины

Я получаю сообщение об ошибке "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);
    }
}

person Timbinous    schedule 14.01.2015    source источник


Ответы (2)


Таким образом, это оказывается проблемой плохого сообщения об ошибке компилятора. Проблема заключалась в том, что я не использовал правильную подпись для fromCharArray. Требуется список целых чисел, и я передаю список строк. В конце концов, мне все равно не нужен этот метод. К такому выводу мне помог вызов return System.String.fromCharArray(InputArray), который показал мне, что я могу использовать неправильную подпись для этого метода. Надеюсь, это поможет другим отладить свой код Apex.

person Timbinous    schedule 14.01.2015

Пожалуйста, просмотрите список Строковые статические методы. Здесь вы можете узнать, что таких методов с сигнатурой String.fromCharArray(List<String> charArray) нет, но есть следующий String.fromCharArray(List<Integer> charArray) /

person Pavel Slepiankou    schedule 14.01.2015