2013-04-25 2 views
1

비행 중에 변수를 선언하는 방법을 찾은 사람이 있습니까? 새로운 변수를 즉시 선언 하시겠습니까?

나는 나는 늘 보면 알

for(loop though){ 
    val + '1' = dosomething('1') 
} 

...

val1 
val2 
val3 
val4... 

가 즉석에서 뭔가 등이 이러한을 만들 수있는 방법이 있나요 ... 무한이 될 수있는 몇 가지 변수가 위와 같은 것이나 그것의 요지를 얻기를 바란다.

+0

지도와 목록이 VF 페이지로 쉽게 전달 될 수 있으므로 아래 두 답변에 대한 귀하의 의견에 혼란 스럽습니다 ... 사용하지 못하도록하는 유스 케이스에 대해 자세히 설명해 주시겠습니까? – JCD

답변

1

정점에서는 불가능합니다. 그러나 목록을 사용할 수 있습니다.

List<String> values = new List<String>(); 

for (Integer i = 0; i < aList.size(); i++) { 
    values.add(dosomething(i)); 
} 
+0

감사합니다. Jeremy, 이것은 좋은 해결 방법이지만, Visualforce 페이지에 값을 전달해야하므로 제 상황에서는 작동하지 않습니다. 많은 감사 – c14kaa

+0

Visualforce 페이지는 Jeremy의 List 또는 eyecream의 Map과 같은 컬렉션 클래스를 받아 들일 수 있습니다. – ryanbrainard

1

Apex는 구문 분석 된 구문 분석/동적 언어입니다. Javascript 나 PHP에서는 (자바가 아는 한) 자바가 아니라고 말할 수 있습니다. 또한 Salesforce는 오라클 데이터베이스 및 Java를 기반으로 구축 되었기 때문에 Apex는 가장 필요하다고 생각되는 Java 호출에 대해 일종의 얇은 래퍼입니다.

호기심에서 벗어난 이유 - 왜 필요하겠습니까?

순차적 액세스가 필요한 경우 Jeremy의 아이디어를 루프와 함께 사용하십시오. 또는 ...

"고유 키 -> 일부 값"이 필요하면지도를 사용하십시오.

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 ... 함수가 반환하는 값과 동일 할 수 있습니다.

내가 생각할 수있는 또 하나의 트릭이 있습니다. 데이터가 외부 소스에서 오는 것이라면 도움이 될 수 있습니다. JSON/XML 파서를 사용하여 모든 유형의 데이터 (String으로 유지)를 원하는 컬렉션으로 캐스팅 할 수 있습니다. List/Map 아이디어로 돌아가지만,이 문자열을 미리 작성/검색하는 방법은 전적으로 사용자에게 달려 있습니다. JSON methods에 대해 읽어보십시오. 예측 가능한 패턴을 따르는 구조가없는 경우 JSON/XML 파서 (click here)를 확인하고 예제로 스크롤하십시오.

+0

끔찍한 정보와 당신의 일은 아주 훌륭합니다. 나는이 방법을 기억할 것입니다. 그러나 변수가 visualforce 페이지에 전달되어야하므로 내 상황에서는 작동하지 않으므로 변수를 만들어야합니다. 그러나 나는 다른 누군가가 이것을 매우 흥미롭고 많이 감사 할 것이라고 확신합니다. – c14kaa

+0

지도/목록은 Visualforce에서도 사용할 수 있습니다. '{! myMap ['someKey1 ']}'. http://www.salesforce.com/us/developer/docs/pages/Content/pages_dynamic_vf_maps_lists.htm. 1000 항목 제한 (페이지에'readOnly = true'가 있으면 10 000)을 기억하십시오. – eyescream

관련 문제