Ошибка вызываемого оператора в двойном методе - PullRequest
0 голосов
/ 20 мая 2011

Мне удалось получить значение, заданное как удвоенное, как это, используя вызываемое выражение

this.setValue(new Double(cstmt.getDouble(4)));

, но когда я пытаюсь записать его обратно, как это

cstmt.setDouble(4, this.getValue());

я получаю ошибку

compile:
     [exec] com\jack\common\javabean\ExampleBean.java:262: cannot resolve symbol
     [exec] symbol  : method setDouble (int,java.lang.Double)
     [exec] location: interface java.sql.CallableStatement
     [exec]                     cstmt.setDouble(7,this.getValue());
     [exec]                              ^

любое предложение, что можно сделать с этим

Ответы [ 2 ]

4 голосов
/ 20 мая 2011

Предполагая, что this.getValue() возвращает Double, похоже, вам нужно использовать this.getValue().doubleValue() для соответствия сигнатуре метода. Требуется double примитив, а не Double объект.

Полагаю, вы используете Java 1.4 или более раннюю версию. В 1.5 эта ошибка должна была быть скрыта при автобоксировании.

0 голосов
/ 20 мая 2011

Очевидно, класс, экземпляром которого является cstmt, не имеет (видимой) функции-члена, называемой setDouble (int, java.lang.Double).Возможно ли, что он должен быть установлен setDouble (int, double), и вы передаете экземпляр java.lang.Double, и процедура ожидает примитив типа double?

...