首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >量测滤光片

量测滤光片
EN

Stack Overflow用户
提问于 2017-07-07 11:25:08
回答 1查看 194关注 0票数 0

我们正在使用伟大的计量单位框架来动态管理单元。我有按数量过滤单位清单的要求。显示所有质量(吨,千克.)。这个列表会产生一个通用捕获列表(我知道这并不理想)。一般信息在运行时不存在(仅在编译时)。但是,对于单元接口,存在一个检查兼容性的实现:

  • 布尔isCompatible(单位); @ testCompatible_ByUnit(){单位公斤= Units.KILOGRAM;单位吨= NonSI.TONNE;assertTrue(kilogram.isCompatible(吨));}

有没有用数量检查兼容性的接口?

不工作的例子与数量质量

代码语言:javascript
复制
    @Test
    public void testCompatible_FilterByQuantityAndCapture(){
        Unit<?> kilogram = Units.KILOGRAM;
        // wish: interface does not exist
        assertTrue(kilogram.isCompatible(Mass.class));
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-10 17:25:52

这是Java语言的一个常见问题,因为Java到目前为止还没有提供具体化泛型

我不知道这个特性把它变成了Java 9,所以我们很可能不会在Java 10或更高版本之前看到它。

代码语言:javascript
复制
<Q extends Quantity<Q>> Unit<Q> getUnit(Class<Q> quantityType);

返回给定Quantity类的默认(或系统)单元。虽然Dimension更像是数量的“保护伞”,但你也可以得到一个特定维度下所有单位的列表。

代码语言:javascript
复制
Set<? extends Unit<?>> getUnits(Dimension dimension);

在API/SPI的未来版本中,SystemOfUnits也可能为Quantity类提供类似的东西,但在底层Quantity平台提供精化的泛型或其他比现在更好的类型信息之前,这种额外的方法很可能没有多大意义。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44969585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档