2016-10-25 2 views
2

Я недавно пытался использовать версию cfcomponentcfscript вместе с JavaDoc нотации и получаю ошибку:Определение аргументов атрибутов с использованием JavaDoc обозначения (CFscript)

The system has attempted to use an undefined value, which usually indicates a programming error, either in your code or some system code.

Null Pointers are another name for undefined values.

От CF docs:

/** 
* custom metadata for a cfc defined using annotation as well as key-value pairs 
* @cfcMetadata1 "cfc metadata1" 
*/ 
component cfcMetadata2 = "cfc metadata2" 
{ 
    /** 
    * custom metadata for a property defined using annotation as well as key-value pairs 
    * @propMetadata1 "property metadata1" 
    */ 
    property type="numeric" name="age" default="10" propMetadata2="property metadata2"; 

    /** 
    * custom metadata for a function/argument using both annotation and key-value pairs 
    * @arg1.argmdata1 "arg metadata1" 
    * output true 
    * @fnMetadata1 "function metadata1" 
    */ 
    public string function foo(required numeric arg1=20 argmdata2="arg metadata2") fnMetadata2="function metadata2" 
    { 
     writedump(getmetadata(this)); 
     return arg1; 
    } 
} 

Мой код :

/** 
* @displayName Test 
* @output false 
* 
* @since 2016-10-25 
* @version 1.0 
*/ 
component { 

    /** 
    * I am a test function. 
    * 
    * @limitFrom.required false 
    * @limitFrom.default 0 
    * 
    * @limitBy.required false 
    * @limitBy.default 0 
    * 
    * @returnFormat "json" 
    * 
    * @since 2016-10-25 
    * @version 1.0 
    */ 
    remote query function test(
     numeric limitFrom, 
     numeric limitBy 
    ) { 
     return queryNew(""); 
    } 
} 

Это только счастье Ening, когда я пытаюсь присвоить значение по умолчанию для аргументов, используя JavaDoc обозначения т.е.,

@limitFrom.default 0

@limitBy.default 0

Удаление этих и все в порядке. Не знаете, почему это происходит?

+0

Поскольку все другие атрибуты, похоже, работают, может быть ошибка. Общая догадка, но ... учитывая, что «по умолчанию» является ключевым словом на многих языках, я не удивлюсь, если это каким-то образом повлияет на то, чтобы внутренний анализ падал ... – Leigh

+0

Вы когда-нибудь выясняли, ошибка или код? – Leigh

+0

@Leigh Я попробовал еще раз, и ошибка только в том случае, если я использую аргументы функции default. Я также использовал 'default' для' property', и он работал так, как ожидалось, это похоже на ошибку. – Beginner

ответ

0

Я знаю, что вы специально спросили о нотации JavaDoc, но я не поклонник, и вполне возможно, что вы не видели никакой альтернативы. Я предпочитаю этот синтаксис.

component 
    displayName="test" 
    output="false" 
    hint="blah blah description..." 
{ 

    // beware of `default`--it doesn't do what you might think. 
    // it's ignored unless you use ORM 
    property type="numeric" name="age" default="10" 
     hint="blah blah description..." 
     propMetadata2="property metadata2"; 

    remote query function test(
     numeric limitFrom=0 hint="blah blah description...", 
     numeric limitBy=0 hint="blah blah description..." 
    ) 
    hint="I am a test function" 
    { 
     return queryNew(""); 
    } 

} 
Смежные вопросы