2013-05-05 6 views
0

이것은 단순한 것이어야하지만, 조정할 필요는 없습니다 (나는 기본 원리를 오해하지 않았 으면합니다!). 다음과 같이선택적 인수 - 전달 된 인수가 정수가 아닙니다.

가 나는 CFC에서 함수를 정의했습니다 :

public void function createWidget( 
     required any event 
     , required String widgetType 
     , String elementId="" 
     , integer refreshRate="0" 
     , required integer rowNumber 
     , required integer colNumber 
     , required integer width 
     , required integer height 
     , String title="" 
     , String bgColour="orange"){ 

당신이 볼 수 있듯이, 거기에 몇 가지 필요한 인수, 일부 난에 대한 기본 값을 제공 한 것을하지 않아도됩니다 (예 : integer refreshRate="0"를).

는 지금은, 선택적 인수를 활용하려고 명명 된 인수를 사용하여이 함수를 호출하고 예 :

그래서이 경우 refreshRate에 대한 값을 제공하지 않은,하지만 난이 오류가
createWidget(event:event 
       , widgetType:'blank' 
       , rowNumber:1 
       , colNumber:1 
       , width:2 
       , height:1 
       , title:'Empty Widget') 

:

The REFRESHRATE argument passed to the createWidget function is not of type integer. 

또한 인용 부호 (integer refreshRate=0) 여전히 동일한 문제를 제거하기 위해 refreshRate에 대한 기본 값을 업데이트하는 노력했다.

내가 뭘 잘못하고 있는지 알아낼 수 있습니까?


UPDATE
나는 또한 실제로 (함수 호출에 refreshRate:0 추가) 변수 화면 재생 빈도를 전달 시도하고 난 여전히 같은 오류를 얻을!

답변

2

좋아, 분명히 인수를 "numeric"유형으로 바꾸면이 문제가 해결됩니다. 정수가 허용되지 않는 이유는 확실하지 않습니까? 정당한 CF 유형 맞습니까?

+10

아니요, 숫자 만 지원됩니다. – Busches

+5

자세한 내용을 보려면 약 14 개의 [기본 제공되는 인수 유형] (http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7e47.html)을 참조하십시오. 다른 모든 값은 구성 요소의 "이름"으로 처리됩니다. 오류가 실제로 의미하는 것은 CF가'Integer'가 구성 요소의 이름이라고 생각하고 그것이 Integer.cfc의 인스턴스가 아니기 때문에 매개 변수를 거부한다는 것입니다. – Leigh

관련 문제