2013-07-04 17 views
0

如何将我的测试方法重写为xtend?我尝试了几件事,但我失败了。写在XTEND将匿名内部类重写为闭包(Java - > 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); 

} 

回答

0

好吧,我解决了这个问题是这样的:

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['''......'''] 
}