0

我想问一下,我们是否应该将 toString() 实现中使用的字符串文字外部化。让我举个例子吧 :-

假设这是我的 toString() 实现:-

@Override
public String toString() {
 return "First Name: " + firstName + "," + "Last Name: " + lastName;
}

在这里,我们是否应该将“名字:”和“姓氏:”外部化?

另一种情况是使用验证字符串。如果我使用名字和姓氏创建名称对象,名字不能为空。然后我在我的构造函数中进行了以下检查:-

if(firstName == null) {
 throw new NullPointerException("firstName is null");
} 

我们是否应该将“firstName is null”外部化?

谢谢

4

2 回答 2

4

你真的只需要这样做,如果你想允许调试消息被国际化,因为toString不应该真正显示给用户

于 2012-08-13T17:04:12.440 回答
1

有用的链接:http ://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Fconcepts%2Fconcept-string-externalization.htm

你可能还想看看这个: http ://tika.apache.org/

所以当 tika 给你一个字符串的语言时,你应该写一个像这样的 Java 方法:

enum languageToTransformString //create however many languages you want

public String toString(String lang)
{
    languageToTransformString = lang;
    switch languageToTransformString:
        case german:          
        firstNameText = "deutchName: ";  
        lastNameText = "deutchLastName: ";
        return new String(firstnameText + firstName + lastNameText + lastName);
         break;
        case eng:
       //do stuff

        firstNameText = "engName: ";  
        lastNameText = "engLastName: ";
        return new String(firstNameText + firstName + lastNameText + lastName);
        break;
        default:
        return new String("We don't support your language. Sorry.");

}
于 2012-08-13T17:16:39.360 回答