首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java - JScience定义了一个新单元

Java - JScience定义了一个新单元
EN

Stack Overflow用户
提问于 2010-10-24 18:57:50
回答 3查看 2.1K关注 0票数 4

我想在JScience中定义一个新的距离单位。项目网站的“教程”部分只是指向Javadoc,虽然相当完整,但对我来说有点太密集了,我无法理解我实际上是如何定义自己的单元的。

你能举个例子吗?

干杯。

皮特

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-24 21:39:18

也许关于Java中的单位的this other SO question可以有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-12-05 04:33:21

我知道这是个老帖子,但是..不管怎样,我都会把答案贴出来,也许它会对某些人有用

为了在JScience中定义一个自定义单元,您必须扩展类SystemOfUnits并在这里定义您的所有自定义单元。

检查下面的示例(我正在定义英亩的单位)

代码语言:javascript
复制
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;
   }
}
票数 5
EN

Stack Overflow用户

发布于 2015-07-21 16:31:06

请看一下JSR363RI是如何做到这一点的(由JScience 4实现的275RI的后续版本) https://github.com/unitsofmeasurement/unit-ri/blob/master/src/main/java/tec/units/ri/format/SimpleUnitFormat.java

SimpleUnitFormat的默认版本支持UTF8,而ASCII码适用于有限的环境或设备,这些环境或设备可能没有图形用户界面或字符集:

DEFAULT.label(MetricPrefix.MICRO(Units.LITRE), "µl"); ASCII.label(MetricPrefix.MICRO(Units.LITRE), "microL");

注意,label()方法将在公共草案的下一个候选版本中引入JSR363API。目前它是RI的一部分(https://github.com/unitsofmeasurement/unit-ri,而不是JScience,尽管它最终也可能在V5中迁移到新标准)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4007937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档