Переписать анонимный внутренний класс в замыкание (Java -> xtend)
Как я могу переписать свой тестовый метод в 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 );
}
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['''......''']
}