我有一個課程擴展了Jscience的SystemOfUnits來定義一些自定義單位。即使在調用方法Unit.valueOf()之前,我也希望此類可以由JVM加載。如何確保在應用程序啓動時加載java類?
如果該類沒有在JVM加載然後下面的調用作爲java.text.ParseException失敗:DZ不是(在索引0在DZ)識別
Unit.valueOf("dz");
-
public final class CustomUnits extends SystemOfUnits {
...
private static HashSet<Unit<?>> UNITS = new HashSet<Unit<?>>();
public static final Unit<Dimensionless> DOZEN = customUnits(Unit.ONE
.times(12));
public static final Unit<Dimensionless> PIECE = customUnits(DOZEN
.divide(12));
static {
UnitFormat.getInstance().label(CustomUnits.DOZEN, "dz");
UnitFormat.getInstance().label(CustomUnits.PIECE, "pcs");
}
@Override
public Set<Unit<?>> getUnits() {
return Collections.unmodifiableSet(UNITS);
}
....
}
另外需要通知的是,這個類將成爲一個通用jar的一部分,它將作爲對其他主應用程序的依賴項提供,並且我不希望每個用戶都被告知在調用Unit.valueOf()之前應該引用此類。
尋找可能的選項,當包含自定義類的jar被加載爲依賴項時,可以使類加載。想知道春豆初始化會有所幫助。
您只需要在某處引用該類。 – 2014-10-12 14:01:51