Java プロジェクトでコントラクトを使用しています。(コントラクト=メソッドの開始時と終了時にチェックを行う)
ジェネリック メソッドのコントラクトを記述する良い方法/パターンがあるかどうか疑問に思っています。例えば:
public abstract class AbstractStringGenerator{
/**
* This method must return a new line as it's last char
* @return string output
*/
public abstract string generateLine(String input);
}
私が欲しいのは、 の出力がgenerateLine
コントラクトを満たしていることを確認する良い方法です (この場合、最後の文字は改行文字でなければなりません)。
私はこれを行うことができると思います(しかし、より良い方法があるのだろうか)。
public abstract class AbstractStringGenerator{
public string generateLine(String input){
string result = generateLineHook(input);
//do contract checking...
//if new line char is not the last char, then throw contract exception...
return result;
}
/**
* This method must return a new line as it's last char
* @return string output
*/
protected abstract string generateLineHook(String input);
}
これが曖昧すぎないことを願っています。どんな助けでも感謝します。