2012-03-05 60 views
0

我一直在寻找解决这个问题的方法,无法找到任何我理解的东西。我正在做一个教程,并抄写我老师输入的所有东西,所以我只是在学习......但是当我这样做时,它一直给我这个错误。由于我是新来这个,我不知道究竟发生了什么意思或如何解决它:(不可编译的源代码:错误的Sym错误

public final class DefaultPlayerNameConverter 
     implements PlayerNameConverter 
{ 

    /** 
    * Must be created through the create method. 
    */ 
    private DefaultPlayerNameConverter() 
    { 
    } 

    /** 
    * Create a DefaultPlayerNameConverter. 
    * 
    * @return a DefaultPlayerNameCOnverter. 
    */ 
    public static DefaultPlayerNameConverter create() 
    { 
     final DefaultPlayerNameConverter converter; 

     converter = new DefaultPlayerNameConverter(); 

     return (converter); 
    } 

    /** 
    * Convert player name to remove leading/trailing whitespace. 
    * 
    * @param name the name to convert. 
    * 
    * @return the converted name. 
    * 
    * @throws IllegalArgumentException if name is null. 
    */ 
    @Override 
    public String convertName(final String name) 
    { 
     final String convertedName; 

     if(name == null) 
     { 
      throw new IllegalArgumentException("name cannot be null"); 
     } 

     convertedName = name.trim(); 

     return (convertedName); 
    } 
} 

public class DefaultPlayerNameConverterTest { 

    public DefaultPlayerNameConverterTest() { 
    } 

    /** 
    * Test bad arguments to the convertName method. 
    */ 
    @Test 
    public void testConvertBadName() 
    { 
     try 
     { 
      new DefaultPlayerNameConverter.create().convertName(null); 
      fail("convertName(null) must throw an " 
        + "IllegalArgumentException"); 
     } 
     catch(final IllegalArgumentException ex) 
     { 
      assertEquals("name cannot be null", ex.getMessage()); 
     } 
    } 

     /** 
     * Test good arguments to the convertName method. 
     */ 
     @Test 
     public void testConvertGoodName() 
     { 
      checkConvertName("", ""); 
      checkConvertName("\t", ""); 
      checkConvertName("\n", ""); 
      checkConvertName("\r", ""); 
      checkConvertName("\r\n", ""); 
      checkConvertName("\r\n\t", ""); 
      checkConvertName("X", "X"); 
      checkConvertName(" X", "X"); 
      checkConvertName("X ", "X"); 
      checkConvertName(" X ", "X"); 
      checkConvertName("X Y", "X Y"); 
      checkConvertName("Hello\tworld", "Hello\tworld"); 
     } 
     /** 
     * Check that the name conversion works. 
     * 
     * @param originalName the name to convert. 
     * @param expectedName what the name should be converted to. 
     */ 
     private void checkConvertName(final String originalName, 
             final String expectedName) 
     { 
      final PlayerNameConverter converter; 
      final String convertedName; 

      converter = new DefaultPlayerNameConverter.create(); 
      convertedName = converter.convertName(originalName); 
      assertEquals(expectedName, convertedName); 

     } 
} 

错误不断显示在我的测试类,当我添加了“ DefaultPlayerNameConverter创造”的方法。我不知道如何解决它。我只是把什么教程告诉我做。


这是PlayerNameConverter接口...

public interface PlayerNameConverter { 

    /** 
    * Convert the supplied name. 
    * 
    * @param name the name to convert. 
    * 
    * @return the converted name. 
    */ 
    String convertName(String name); 
} 
+1

什么是错误,精确?完全复制它。 –

+0

我的赌注是转换器和converterName的最终关键字。对不起,在手机上没有IDE。 – stryba

+0

你还有PlayerNameConverter接口吗? – berry120

回答

1

这条线:

new DefaultPlayerNameConverter.create().convertName(null); 

不应该有new关键字,它应该只是

DefaultPlayerNameConverter.create().convertName(null); 
+0

我刚刚尝试过。它似乎没有工作。它仍然说,无论何时我有DefaultPlayerNameConverter.create()或其他东西,它都“无法找到符号”。 – user1251020

+0

啊,我想我看到了这个问题。完全改变了我的答案,再次检查。 – jacobm

+0

修复了一切!非常感谢!! – user1251020