Есть ли анализатор для числовых строковых литералов Java, который возвращает запрошенный подкласс Number? - PullRequest
2 голосов
/ 27 декабря 2011

В коде Java можно иметь числовые литералы, которые используют суффикс для указания типа литерала, например, 1D, 0.15F или 5L для double, float и long соответственно. Также поддерживается шестнадцатеричное и восьмеричное представления и, возможно, некоторые другие вещи, которые я не упомянул.

Я бы хотел что-то эквивалентное синтаксическому анализатору, который используется javac внутри, который бы возвратил Number объектов.

NumberFormat.parse(), как это реализовано в DecimalFormat, похоже, создает только объекты Double и Long, с некоторыми проблемами, когда некоторые из упомянутых выше обозначений используются.

Существует ли в стандартной библиотеке классов синтаксический анализатор, скажем, Java 6 и выше, который способен прозрачно анализировать такие строки и возвращать правильный подкласс Number?

1 Ответ

0 голосов
/ 27 декабря 2011

нет там нет. Вам придется написать этот метод самостоятельно. Было бы достаточно просто взглянуть на последний непробельный символ и ввести блок переключателей, чтобы получить правильный подкласс Number.

...