我正在开发一个应用程序,想要以厘米 (cm) 或英寸 (") 为单位显示长度。有没有办法从区域设置中选择正确的单位?无论如何,我还将输入一个选项,以便用户可以覆盖区域设置。
美国、利比里亚和缅甸应使用英制单位,而世界其他国家应使用正常单位。一种方法是将此逻辑放入我自己的类中,但我更喜欢使用任何内置逻辑(如果可用)。有什么指点吗?
最后我采用了以下解决方案。
public class UnitLocale {
public static UnitLocale Imperial = new UnitLocale();
public static UnitLocale Metric = new UnitLocale();
public static UnitLocale getDefault() {
return getFrom(Locale.getDefault());
}
public static UnitLocale getFrom(Locale locale) {
String countryCode = locale.getCountry();
if ("US".equals(countryCode)) return Imperial; // USA
if ("LR".equals(countryCode)) return Imperial; // Liberia
if ("MM".equals(countryCode)) return Imperial; // Myanmar
return Metric;
}
}
例如,像这样使用它。
if (UnitLocale.getDefault() == UnitLocale.Imperial) convertToimperial();
如果还需要转换方法,最好将它们添加到 UnitLocale 的子类中。我只需要detect是否使用英制单位并将其发送到服务器。
Using int
与 java 对象相比,s 的性能提升极其有限,并且使代码更难以阅读。在java中比较两个引用的速度与比较两个引用的速度相当ints
。使用对象还允许我们向UnitLocale
类或子类,例如,convertToMetric 等。
如果您愿意,也可以使用枚举来代替。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)