如何在JSR 385(Indriya)中获取Quantity对应的测量类型接口?
关于JSR-385 Indriya实现中解析Quantity后确定对应测量接口的问题
我正在使用JSR-385的参考实现Indriya,通过以下代码解析用户输入的字符串获取Quantity实例:
QuantityFormat qf = ServiceProvider.current().getFormatService().getQuantityFormat(); Quantity q1 = qf.parse("10 J"); // 字符串来自用户输入,计量单位不固定
我需要确定q1对应的是javax.measure.quantity包中的哪一个测量接口。尝试过获取Dimension,但Dimension无法区分不同的测量类型:
Quantity q2 = qf.parse("10 N*m"); System.out.println(q1.compareTo(q2)); // 输出"0",但能量和扭矩并非同一测量类型
另外补充一点:Dimension.getBaseDimensions()的API设计存在不一致性——它并非始终返回Map<Dimension, Integer>:仅当Dimension与基础维度无关时才返回该类型,否则返回null(原本可以始终返回包含单个Map.Entry的Map来保持一致性),不过UnitDimension.NONE是例外,它会返回空Map。
内容的提问来源于stack exchange,提问作者zambotn
相关产品推荐
相关产品推荐

