|
|
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
Нужна помощь. Есть такой код: ... Locale loc = new Locale( "ru", "RU" ) ; ResourceBundle bundle = sun.util.resources.LocaleData.getNumberFormatData( loc ) ; String numberElements[] = bundle.getStringArray( "NumberElements" ) ; ... На компиляции получаем ошибку: error: cannot find symbol ResourceBundle bundle = sun.util.resources.LocaleData.getNumberFormatData( loc ) ; symbol: class LocaleData location: package sun.util.resources Смотрим в JDK 1.7: rt.jar\sun.util.resources.LocaleData.class т.е. класс в библиотеке есть. Единственное в чем я тут не уверен - в списке классов показываются только public-классы или нет.. Работаю в NetBeans 7.1.1. В версии 7.4 ошибка появляется еще при написании кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2013, 18:42:52 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
Может NetBeans явно запрещает sun.* использовать? Что там такого вы пытаетесь получить, что штатными средствами не доступно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2013, 18:55:00 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, > Может NetBeans явно запрещает sun.* использовать? Думаю - нет. Я создал маленький тестовый проект и попробовал откомпилировать его через командную строку - результат тот же. > Что там такого вы пытаетесь получить, что штатными средствами не доступно? Я пытался выставить для локали по умолчанию свой разделитель дробной и целой части и разделитель групп разрядов. Но это не так важно, меня не приятно удивил сам факт: все вроде должно работать, а не работает.. где следующий раз такое вылезет?! Не плохо было бы разобраться заранее.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2013, 19:15:01 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
по поводу моей фразы: > Единственное в чем я тут не уверен - в списке классов показываются только public-классы или нет.. Думаю что, во всяком случае этот, класс является public т.к. в NumerFormat усть код его использующий: import sun.util.resources.LocaleData; ... private static NumberFormat getInstance(Locale desiredLocale, int choice) { ... ResourceBundle resource = LocaleData.getNumberFormatData(desiredLocale); ... } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2013, 19:18:58 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
Shut_downДумаю - нет. Я создал маленький тестовый проект и попробовал откомпилировать его через командную строку - результат тот же. Прикольно. А в идее компиляется. Shut_down Я пытался выставить для локали по умолчанию свой разделитель дробной и целой части и разделитель групп разрядов. java.text.DecimalFormatSymbols ? Shut_down Но это не так важно, меня не приятно удивил сам факт: все вроде должно работать, а не работает.. где следующий раз такое вылезет?! Не плохо было бы разобраться заранее.. sun.* com.sun.* внутренние пакеты не предназначеные для использования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2013, 19:39:59 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПрикольно. А в идее компиляется. Версия Java? У меня jdk1.7.0_09. Есть подозрение, что что-то поменяли в библиотеке. Но огда возникает вопрос: а что же мне показывает NetBeans? Blazkowiczjava.text.DecimalFormatSymbols ? Можно и так, но гемора больше: надо создать экземпляр с нужными настройками, потом его как-то всюду передавать и не забывать использовать, а локаль выставил и забыл. Blazkowiczsun.* com.sun.* внутренние пакеты не предназначеные для использования. Откуда это известно? Класс есть в библиотеке, он используется в других классах библиотеки, по нему есть документация, но конечному пользователю ипользовать его нельзя?! Хотелось бы увидеть как это сделано. Я этот код не сам придумал, я его где-то на форумах нарыл т.е. когда-то он работал.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 12:54:22 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
Shut_downВерсия Java? У меня jdk1.7.0_09. Есть подозрение, что что-то поменяли в библиотеке. Но огда возникает вопрос: а что же мне показывает NetBeans? Версия не при чем. И в 6ке и в 7ке с командной строки не компилируется. Shut_down Можно и так, но гемора больше: надо создать экземпляр с нужными настройками, потом его как-то всюду передавать и не забывать использовать, а локаль выставил и забыл. Хачить так глобально... Можно попробовать завести свою локаль в проекте и её использовать. :) Можно даже попробовать просто через SPI зарегистрировать нужную локаль: http://docs.oracle.com/javase/6/docs/api/java/util/spi/LocaleServiceProvider.html Shut_downBlazkowiczsun.* com.sun.* внутренние пакеты не предназначеные для использования. Откуда это известно? Эээ, ну-помоему в каждой книжке для начинающих написано. Странно как это мимо вас прошло. Начать хотя бы с того, что этих классов нет в JavaSE API документации: http://docs.oracle.com/javase/7/docs/api/index.html Shut_downКласс есть в библиотеке, он используется в других классах библиотеки, Там много чего есть. Shut_downпо нему есть документация, Где? Shut_downно конечному пользователю ипользовать его нельзя?! Можно. Но не рекомендуется. Shut_downЯ этот код не сам придумал, я его где-то на форумах нарыл т.е. когда-то он работал.. Дык он и сейчас работает, если повозиться с опциями javac. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 13:04:24 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
Вот так компилируется из командной строки javac -bootclasspath %JDK_HOME%\jre\lib\rt.jar Test.java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 13:11:35 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
BlazkowiczХачить так глобально... Ну почему сразу "хачить"? Я действительно не знал, что в основной библиотеке Java есть классы, поддержка которых не гарантирована и поэтому они не рекомендуются к использованию. BlazkowiczЭээ, ну-помоему в каждой книжке для начинающих написано. Странно как это мимо вас прошло. Читал от "корки-до-корки" Эккеля "Философия Java" и как справочник пользую Хорстмана "Java 2. Библиотека профессионала". Может не внимательно читал, но не помню упоминания о подобных классах.. BlazkowiczМожно попробовать завести свою локаль в проекте и её использовать. :) Можно даже попробовать просто через SPI зарегистрировать нужную локаль: http://docs.oracle.com/javase/6/docs/api/java/util/spi/LocaleServiceProvider.html Я подумывал о таком варианте. Но во-первых: он сложнее, а во-вторых: чем он так сильно отличается от моего? Я, по факту, создал собственную локаль, только не с нуля, а на основе уже существующей. BlazkowiczShut_downпо нему есть документация, Где? Напрмер тут: http://www.docjar.com/docs/api/sun/util/resources/LocaleData.html Хотя это, конечно, не официальный ресурс. Но у меня и тот же NetBeans показывает структуру, если встать на класс в библиотеке проекта.. BlazkowiczДык он и сейчас работает, если повозиться с опциями javac. Вот так компилируется из командной строки javac -bootclasspath %JDK_HOME%\jre\lib\rt.jar Test.java Спасибо, действительно работает. Я, честно говоря, до этого со строкой практически не работал.. Если не трудно просветите - что собственно изменилось? То, что Вы явно прописали путь к библиотеке я понял, но в ней (библиотеке) кроме sun.* и т.п. содержатся и вполне "легальные" пакеты, собственно, там собраны все основные классы. Если раньше компилятор ее не видел, то как он вообще хоть что-то мог откомпилировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 14:51:27 |
|
||
|
LocaleData
|
|||
|---|---|---|---|
|
#18+
Нарыл ответ почему классы из rt.jar не находятся: http://stackoverflow.com/a/4070685 И коментарий о том что так и должно быть: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6778491 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 15:11:22 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38488708&tid=2128065]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 195ms |
| total: | 477ms |

| 0 / 0 |
