Переписать анонимный внутренний класс в замыкание (Java -> xtend)

Как я могу переписать свой тестовый метод для расширения? Я пробовал несколько вещей, но я терплю неудачу.

Класс написан в xtend

import com.google.common.base.Function

class Generator {
@Property Function<Generator, CharSequence> generateSomething;

generateFoo() {
    if( null != generateSomething) {
        generateSomething.apply(this)
    }
}

TestClass написан на Java

@Test
public void testX() {

    Generator gen = createGenerator()

    Function<Generator, CharSequence> generateSomething= new Function<Generator, CharSequence>() {
        @Override
        public CharSequence apply( Generator input ) {
            StringConcatenation result = new StringConcatenation();
            result.append(".......");

            return result;
        }
    };

    gen.setGenerateSomething( generateSomething );

}

person GarfieldKlon    schedule 04.07.2013    source источник


Ответы (1)


Хорошо, я решил это так:

import com.google.common.base.Function

class Generator {
@Property private (Generator) => CharSequence generateSomething;

generateFoo() {
    if( null != generateSomething) {
        generateSomething.apply(this)
    }
}

Переписан метод тестирования в xtend:

@Test
def void testX() {

    Generator gen = createGenerator()

    gen.setGenerateSomething['''......''']
}
person GarfieldKlon    schedule 04.07.2013