У нас есть система, в которой пользователь может предоставлять данные любого устройства. Данные хранятся и потенциально преобразуются в любую другую единицу измерения того же размера. Он основан на JScience api.Печать всех определенных единиц в JScience
Я хотел бы создать список всех поддерживаемых единиц, а также все их псевдонимы. Кажется, я не могу найти способ сделать это. В настоящее время я просто делаю это:
for (javax.measure.unit.Unit<?> unit: javax.measure.unit.SI.getInstance().getUnits())
System.out.println(UnitFormat.getInstance().format(unit));
for (javax.measure.unit.Unit<?> unit: javax.measure.unit.NonSI.getInstance().getUnits())
System.out.println(UnitFormat.getInstance().format(unit));
Во-первых, это будет производить только список ярлыков, я не могу найти способ, чтобы получить в псевдонимами вообще.
Во-вторых, он даже не содержит все единицы. Если я посмотрю в декомпилированном файле javax.measure.unit.UnitFormat, который, как представляется, содержит все метки; Я вижу линию:
DEFAULT.label(NonSI.ROENTGEN, "Roentgen");
Но я не вижу «Реконтген» на выходе. у кого-нибудь есть решение?
Я закончил с вашим вопросом, потому что мне нужно то же самое. После некоторого обширного копания в исходном коде, я почти уверен, что на самом деле это невозможно :(Я получу единицы по рефлексии из классов SI и NonSI. Если вы считаете это действительным решением, я могу опубликовать его здесь –
Я пришел к такому же выводу. Поскольку есть несколько других вещей, которые нам нужно сделать, которые не могут быть выполнены в существующем API, я думаю, что мы просто собираемся копировать и строить свои собственные. – Andy