
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Сообщ.
#1
,
|
|
|
Добрый всем...
В Яве 1.5 и класа Стринг появился такой класный метод... ![]() ![]() public boolean contains(String s) { /* compiled code */ } он просто говорит естю ли подстрока s в нашей строке... вот и написал я что-то типа: ![]() ![]() getPairName(0).contains(getIgral(gameNumber, dealNumber)) где : getPairName(0) и getIgral(gameNumber, dealNumber) две строчки... и даже откомпилил в Идейке - всё супер... но вот после того как собрал\заобфусцировал аплетик то юзверя(и я в томже числе) видят java.lang.NoSuchMethodError: java.lang.String.contains(Ljava/lang/String;)Z ![]() Может у когонить есть мысли по этому поводу ЗЫ Я конечно понимаю что есть такая штучка у стринга как indexOf != -1... но тогда спрашиваеться накой сану париться и выпускать новые версии... ![]() |
Сообщ.
#2
,
|
|
|
Да, тут налицо пример несовместимость версий. При разработке приложения нужно ориентироваться на версию Java, которая стоит у юзеров. Или требовать от них конкретной версии.
С этим в джаве туго. Так как тут не только несовместимость сверху вниз. Тут может быть даже несовместимость снизу вверх! То есть, прога, написанная для 1.3, может не работать на 1.4. Почему? Потому, что могут меняться определения интерфейсов - прибавляться новые методы. И если ты имплементировал какой-то интерфейс, к которому в более новой версии джавы прибавился метод, то твой класс уже не имплементирует все методы интерфейса, то есть имплементирует неправильно! И это будет причиной ошибки при исполнении. |
Сообщ.
#3
,
|
|
|
Поэтому-то и не стоит расширять интерфейсы.. Надо вводить наследников. Или затевать глобальный рефакторинг.
В твоем же случае надо просто юзать indexOf и не мучаться (либо всегда запускать под Java 5) |
Сообщ.
#4
,
|
|
|
Так в том-то и проблемма что под идейкой у меня запускаеться а в собранной версии не пашет.. а как вообще посмотреть какая конкретно у меня ява юзаетсья? А то в контролпанеле в разделе ява а потом в одной за закладок у апплетов аж 3 версии явы (хотя все 1.5)
|
Сообщ.
#5
,
|
|
|
Щелкаешь по проекту в IDEA - ModuleSettings - Libraries(Classpath) - Там указана используемая версия JDK.
|
Сообщ.
#6
,
|
|
|
Когда запускаешь из-под браузера, как правило, стартует Java Console. Можно там посмотреть.
|
Сообщ.
#7
,
|
|
|
всем спасобо... как в идейку посмотреть я знал... и там всё в поряде так как компилилось и запускалось из идейки всё НА УРА... а вот с готовым апплетом так и не разобрался
![]() Java Plug-in 1.5.0_04 Using JRE version 1.5.0_04 Java HotSpot(TM) Client VM вот и объясните мне как эта версия не знает: contains public boolean contains(CharSequence s) Returns true if and only if this string contains the specified sequence of char values. Parameters: s - the sequence to search for Returns: true if this string contains s, false otherwise Throws: NullPointerException - if s is null Since: 1.5 в общем ява победила |
Сообщ.
#8
,
|
|
|
Хм. Может, в classpath или в реестре где-нибудь остались отсылки на 1.4, и система сначала пытается лезть туда?
|