2015-01-14 9 views
1

String.fromCharArray()을 호출 할 때 "Variable does not exist: String"nextOne() 메서드에서 발생합니다. 나는 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); 
    } 
} 

답변

1

이렇게하면 잘못된 컴파일러 오류 메시지가 표시됩니다. 문제는 fromCharArray에 올바른 서명을 사용하고 있지 않다는 것입니다. 정수 목록이 필요하고 String List를 전달합니다. 장기적으로 나는 어쨌든 그 방법을 원하지 않았다. 내가 결론을 내리는 데 도움이 된 것은 return System.String.fromCharArray(InputArray)이고 그 방법에 대해 잘못된 서명을 사용하고있는 것으로 나타났습니다. 희망은 다른 사람들이 Apex 코드를 디버그하는 데 도움이되기를 바랍니다.

0

String static methods 목록을 확인하십시오. 여기에는 서명이있는 String.fromCharArray(List<String> charArray)과 같은 메소드가 없지만 다음 코드가 존재합니다. String.fromCharArray(List<Integer> charArray)/