単位を動的に管理するために、優れた測定単位フレームワークを使用しています。ユニットのリストを数量でフィルタリングする必要があります。たとえば、すべての質量 (トン、kg ....) を表示します。リストは、一般的なキャプチャ リストになります (これは理想的ではありません - 私は知っています)。一般的な情報は実行時には存在しません (コンパイル時のみ)。ただし、ユニットインターフェイスについては、互換性が存在することを確認するための実装が存在します。
boolean isCompatible(Unit that);
@Test public void testCompatible_ByUnit(){ Unit<Mass> kilogram = Units.KILOGRAM; Unit<Mass> tonne = NonSI.TONNE; assertTrue(kilogram.isCompatible(tonne)); }
数量で互換性を確認するインターフェイスはありますか?
数量Massを使用した非動作例。
@Test
public void testCompatible_FilterByQuantityAndCapture(){
Unit<?> kilogram = Units.KILOGRAM;
// wish: interface does not exist
assertTrue(kilogram.isCompatible(Mass.class));
}