我们正在使用伟大的计量单位框架来动态管理单元。我有按数量过滤单位清单的要求。显示所有质量(吨,千克.)。这个列表会产生一个通用捕获列表(我知道这并不理想)。一般信息在运行时不存在(仅在编译时)。但是,对于单元接口,存在一个检查兼容性的实现:
有没有用数量检查兼容性的接口?
不工作的例子与数量质量。
@Test
public void testCompatible_FilterByQuantityAndCapture(){
Unit<?> kilogram = Units.KILOGRAM;
// wish: interface does not exist
assertTrue(kilogram.isCompatible(Mass.class));
}发布于 2017-07-10 17:25:52
这是Java语言的一个常见问题,因为Java到目前为止还没有提供具体化泛型。
我不知道这个特性把它变成了Java 9,所以我们很可能不会在Java 10或更高版本之前看到它。
<Q extends Quantity<Q>> Unit<Q> getUnit(Class<Q> quantityType);返回给定Quantity类的默认(或系统)单元。虽然Dimension更像是数量的“保护伞”,但你也可以得到一个特定维度下所有单位的列表。
Set<? extends Unit<?>> getUnits(Dimension dimension);在API/SPI的未来版本中,SystemOfUnits也可能为Quantity类提供类似的东西,但在底层Quantity平台提供精化的泛型或其他比现在更好的类型信息之前,这种额外的方法很可能没有多大意义。
https://stackoverflow.com/questions/44969585
复制相似问题