непонятная ошибка

  • Автор темы AlexSaaa
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

AlexSaaa

Гость
#1
сразу же код
Код:
 public void gotoSelectAllAction(ValueChangeEvent e) {	  
HtmlSelectBooleanCheckbox check = (HtmlSelectBooleanCheckbox) e.getComponent();
boolean state = Boolean.getBoolean(check.getValue().toString());//всегда false
System.out.println("check = " + check.getValue().toString());
System.out.println("check.getValue().equals(\"true\") = " + check.getValue().equals("true"));//всегда false даже если check.getValue() возвращает "true"
 

LuMee

Well-Known Member
02.05.2006
477
0
#2
Советую проверить, какой именно объект возвращает check.getValue() (под отладчиком, например, или просто вывести его getClass().toString()). Может там уже Boolean, и нечего тогда мудрить с преобразованиями.
 
O

ois

Гость
#3
Скорее всего дело в Boolean.getBoolean().
Нашел в документации к этому методу:
Returns true if and only if the system property named by the argument exists and is equal to the string "true". (Beginning with version 1.0.2 of the JavaTM platform, the test of this string is case insensitive.) A system property is accessible through getProperty, a method defined by the System class.
If there is no property with the specified name, or if the specified name is empty or null, then false is returned.
Т.е. насколько я понял - если нет system property с именем "true" - всегда будет возвращаться false.
Поэтому, нужно либо определить для твоего приложение свойство:
Код:
System.setProperty("true", "true");
либо использовать Boolean.parseBoolean().

PS А вообще нашел пример, где HtmlSelectBooleanCheckbox.getValue() сразу приводилось к типу Boolean, так что по ходу дела LuMee прав, хотя я не проверял :D
 
Статус
Закрыто для дальнейших ответов.