2017-04-09 12 views
2

볼륨 단위를 포맷하면 밀리미터와 센티 리어에서 올바르게 작동하지만 데시 리얼에서는 실패합니다.JSR 363 : 볼륨 단위를 decilitre로 형식화

import static tec.units.ri.unit.Units.LITRE; 

import javax.measure.Unit; 
import javax.measure.format.UnitFormat; 
import javax.measure.quantity.Volume; 
import javax.measure.spi.ServiceProvider; 

import static tec.units.ri.unit.MetricPrefix.*; 

public class Example { 

    public static void main(String[] args) { 

     final UnitFormat unitFormat = ServiceProvider.current().getUnitFormatService().getUnitFormat(); 

     final Unit<Volume> MILLILITRE = MILLI(LITRE); 
     final Unit<Volume> CENTILITRE = CENTI(LITRE); 
     final Unit<Volume> DECILITRE = DECI(LITRE); 

     final String mL = unitFormat.format(MILLILITRE); 
     final String cL = unitFormat.format(CENTILITRE); 
     final String dL = unitFormat.format(DECILITRE); 

     System.out.println(mL); 
     System.out.println(cL); 
     System.out.println(dL); 
    } 
} 

이 코드를 인쇄 :

ml 
cl 
㎥/10000.0 

방법 "DL"를 표시 할 볼륨 단위 "데시 리터"를 포맷?

답변

0

감사의 말에 감사드립니다. https://github.com/unitsofmeasurement/unit-ri/issues/54 은 접두어가 SimpleUnitFormat의 모든 단위에 자동으로 전파되지 않는다는 것을 보여줍니다.

구현과 함께 제공되는 기본 단위의 경우 SimpleUnitFormat이이를 알고 있어야합니다. 체크 아웃 할 수 있는지 알아 보려면 https://github.com/unitsofmeasurement/unit-ri/issues/60을 참조하십시오.

기타 대부분 UnitFormat 구현. Java SE 8+ 구현 uom-se 또는 확장 모듈에서 발견되는 것들은 다른 방식으로이를 처리합니다. SimpleUnitFormat의 알려진 제한 사항 (Java ME Embedded를 실행하는 매우 작은 시스템에서도 동일한 방식으로 작동하는지 확인하기 위해 "단순"이라고 함)입니다. 애플리케이션이 Java SE 8 이상을 사용할 수 있거나 Java 버전을 업데이트하는 데 문제가 없다면이 점을 고려하십시오. 이 시점에서 RI는 ME Embedded와 역 호환이 가능해야하므로 모든 구현에 대해 UnitFormatSimpleUnitFormat입니다. 자바 SE 구현의 상단에

final UnitFormat unitFormat =  
    ServiceProvider.current().getUnitFormatService().getUnitFormat("EBNF"); 

를 호출하면 단위 테스트하고이 작업을해야 문제 보고서의 부족에 따라 당신에게 EBNFUnitFormat을 얻을 것이다.

감사합니다, 베르너

+0

코드는'getUnitFormat ("ASCII")를'호출하여 작동 보인다. 'SimpleUnitFormat' (버전 1.0.2)의 963 행에있는'DEFAULT.label (MetricPrefix.DECI (LITER), "dl"); 행에 누락 된 줄이 보일 것입니다. – Andreas

+0

미끄러 진 것처럼 보입니다. 지적 해 주셔서 고마워요. 다가올 업데이트 팩에 있어야합니다. 부활절 이상으로 그렇게하려고합니다. 지금부터 1 주일. 1.0.3-SNAPSHOT이 즉시 작동합니다. 시도해보십시오. –