我想知道为什么以下编译:
Locale aLocale = new Locale.Builder().setLanguage("trollolo").setRegion("CA").build();
System.out.println(aLocale.getLanguage());
因为“trollolo”不是一种语言。为什么它不会返回运行时异常,而是在调用getLanguage()
时甚至返回“trollolo”?
答案 0 :(得分:1)
这是允许的行为。来自javadoc
Builder只检查单个字段是否满足语法要求(格式正确),但不验证值本身。
语法(IETF BCP 47)在Tags for Identifying Languages
中定义