将List <enum>转换为Seq [(String,String)] </enum>

时间:2013-03-06 21:17:16

标签: scala playframework-2.0 scala-java-interop

我想使用@helper.select表单播放2模板引擎,我应该指定包含Seq[(String,String)]数据的<options>。但我有List<Enum>。而且我对Scala很了解。

如果没有这个助手,我会使用以下代码填充<select>

@for( category <- Categories.values()){
   <option value="@category">@Messages.get( category.getI18NName )</option>
}

分类的定义:

public enum Category{
    CATEGORY1{
        @Override
        public String getI18NName(){
            return "category.category1";
        }
    },
    CATEGORY2{
        @Override
        public String getI18NName(){
            return "category.category2";
        }
    };

    public String getI18NName(){
        return null;
    }
}

对于测试,我使用options = options("1" -> "1", "2" -> "2", "3" -> "3", "4" -> "4", "5" -> "5")形式Java example of inputRadioGroup in Play2

如何从Seq[(String,String)]获取List<Enum>

由于

1 个答案:

答案 0 :(得分:2)

您可以在此处使用for comprehension:

for (c <- Category.values()) yield c.name() -> c.getI18NName()

这将返回Array[(String, String)],但scala会在预期类型为Seq[(String, String)]时处理转化。

相关问题