AbstractChoiceでnullを選択肢としてつかう

まあ、そんな設計まずいかんだろという話はおいといて。

RadioChoice<Boolean> choices = 
    new RadioChoice<Boolean>("wicket:id",Arrays.asList(null,true,false));
choices.setChoiceRenderer(new IChoiceRenderer<Boolean>(){
    private static final long serialVersionUID = 1L;
    @Override
    public Object getDisplayValue(Boolean value) {
        if(value==null){
            return "どちらともいえない日本人的回答";
        }
        return value?"はい":"いいえ";
    }
    @Override
    public String getIdValue(Boolean object, int index) {
        if(object==null){
            return "-1";//AbstractSingleSelectChoice.NO_SELECTION_VALUE
        }else{
            return object.toString();
        }
    }
});
//関係ないけど改行しない場合こんなかんじだよね
choices.setSuffix("&nbsp;&nbsp;");

NO_SELECTION_VALUEがprotectedなので、ちょっといやんなかんじ。
まあ、どんな状況でも未選択を残したい場合とか、プロパティファイルの"nullValid"がアレな場合とかに。