0

toString() 実装で使用される文字列リテラルを外部化する必要があるかどうかを尋ねたいと思います。例を挙げましょう:-

これが私の toString() 実装であるとします:-

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

ここで、「First Name:」と「Last Name:」を外部化する必要がありますか?

もう 1 つのシナリオは、検証文字列です。名と姓で名前オブジェクトを作成している場合、名をnullにすることはできません。次に、コンストラクターに次のチェックを入れます:-

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 に答える