[英]Java - JScience define a new unit
我想在JScience中定義一個新的距離單位。 項目網站的“教程”部分只是導致Javadoc,雖然相當完整,但有點過於密集,我無法理解我實際上如何定義自己的單元。
你能提供一個例子嗎?
干杯。
皮特
我知道這是一個很老的帖子,但是......不管怎樣我會發布答案,也許這對某人有用
為了在JScience中定義自定義單元,您必須擴展SystemOfUnits
類並在此定義所有自定義單元。
檢查下面的例子(我正在定義ACRE的單位)
public class MyUnits extends SystemOfUnits
{
private static HashSet<Unit<?>> UNITS = new HashSet();
private static final MyUnits INSTANCE = new MyUnits();
public static final Unit<Area> ACRE = myUnits((SI.METER.pow(2)).times(4046.8564224).asType(Area.class));
public static MyUnits getInstance()
{
return INSTANCE;
}
@Override
public Set<Unit<?>> getUnits()
{
return Collections.unmodifiableSet(UNITS);
}
private static <U extends Unit<?>> U myUnits(U unit)
{
UNITS.add(unit);
return unit;
}
}
請看看JSR 363 RI如何做到這一點(由JScience 4實現的275的繼任者) https://github.com/unitsofmeasurement/unit-ri/blob/master/src/main/java/tec/units /ri/format/SimpleUnitFormat.java
SimpleUnitFormat的默認風格支持UTF-8,而ASCII適用於可能沒有GUI或有限字符集的有限環境或設備:
DEFAULT.label(MetricPrefix.MICRO(Units.LITRE), "µl"); ASCII.label(MetricPrefix.MICRO(Units.LITRE), "microL");
注意,label()方法將在公共草案的下一個候選版本中引入JSR 363 API。 目前它是RI的一部分( https://github.com/unitsofmeasurement/unit-ri ,而不是JScience,盡管它最終可能會在V5中遷移到新標准)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.