Java-JScience定义一个新单元
我想在中定义一个新的distance unit。该项目网站的“教程”部分只介绍了Javadoc,虽然它相当完整,但对于我来说,有点过于密集,无法理解我如何定义自己的单元 你能举个例子吗 干杯Java-JScience定义一个新单元,java,units-of-measurement,jscience,Java,Units Of Measurement,Jscience,我想在中定义一个新的distance unit。该项目网站的“教程”部分只介绍了Javadoc,虽然它相当完整,但对于我来说,有点过于密集,无法理解我如何定义自己的单元 你能举个例子吗 干杯 Pete也许关于Java中的units会有所帮助。我知道这是一篇老文章,但是。。不管怎么说,我都会把答案贴出来,也许对别人有用 为了在JScience中定义自定义单位,您必须扩展类SystemOfUnits,并在这里定义所有自定义单位 检查下面的示例(我正在定义英亩的单位) 公共类MyUnits扩展了Sys
Pete也许关于Java中的units会有所帮助。我知道这是一篇老文章,但是。。不管怎么说,我都会把答案贴出来,也许对别人有用 为了在JScience中定义自定义单位,您必须扩展类
SystemOfUnits
,并在这里定义所有自定义单位
检查下面的示例(我正在定义英亩的单位)
公共类MyUnits扩展了SystemOfUnits
{
私有静态HashSet>getUnits()
{
返回集合。不可修改集合(单位);
}
私有静态请看看JSR363RI是如何做到这一点的(由JSScience 4实现的275的继承者)
SimpleUnitFormat的默认版本支持UTF-8,而ASCII适用于可能没有GUI或有限字符集的有限环境或设备:
DEFAULT.label(公制前缀.MICRO(单位:升),“µl”);
ASCII.标签(公制前缀.MICRO(单位.升),“MICRO”);
注意,label()方法将在下一个公开草案的候选版本中引入JSR 363 API。目前它是RI的一部分(,而不是JScience,尽管它可能最终也会在V5中迁移到新标准)看起来没有太多人使用JScience。也许你必须编写教程。这对我没有帮助,因为没有关于如何添加新单元的明确信息。我也有同样的问题。我看了他们的文档,我认为我们需要的是(标签方法),但我不知道如何实现它。
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;
}
}