Google Guava を使用すると、次のように内部の文字列フィールドを簡単に置き換える文字列ユーティリティがあります。
String query = mydb..sp_mySP ${userId}, ${groupId}, ${someOtherField}
私はこのようなことができる場所:
StringUtil.setString(query)
.setField("userId", "123")
.setField("groupId", "456")
.setField("someOtherField", "12-12-12");
結果の文字列は次のようになります。
mydb..sp_mySP 123, 456, 12-12-12
もちろん、${<field>}
操作前のように文字列フィールドのパターンを設定します...
とにかく、これは私のアプローチです:
public class StringUtil {
public class FieldModifier {
private String s;
public FieldModifier(String s){
this.s = s;
}
public FieldModifier setField(String fieldName, Object fieldValue){
String value = String.valueOf(fieldValue);
s = modifyField(s, fieldName, value);
return new FieldModifier(s);
}
public String get() {
return s;
}
private String modifyField(String s, String fieldName, String fieldValue){
String modified = "";
return modified;
}
}
public FieldModifier parse(String s){
FieldModifier fm = new FieldModifier(s);
return fm;
}
}
modifyField
したがって、この場合、単純な方法で文字列を変更する実際のコードを関数に入れるだけで済みます。また、parse
関数を静的にする方法があれば、何StringUtil.parse(...)
もせずに実行できますが、new StringUtil().parse(...)
これは本当に見栄えがよくありません。