#java #double #callable-statement
#java #двойной #вызываемый оператор
Вопрос:
Я смог установить значение double подобным образом, используя вызываемый оператор
this.setValue(new Double(cstmt.getDouble(4)));
но когда я пытаюсь записать его обратно следующим образом
cstmt.setDouble(4, this.getValue());
я получаю ошибку..
compile:
[exec] comjackcommonjavabeanExampleBean.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] ^
любое предложение, что можно сделать с этим
Ответ №1:
Предполагая, что это this.getValue()
возвращает Double
, похоже, что вам нужно использовать this.getValue().doubleValue()
для сопоставления подписи метода. Для этого нужен double
примитив, а не Double
объект.
Я предполагаю, что вы используете Java 1.4 или более раннюю версию. В версии 1.5 эта ошибка должна была быть скрыта автоматической упаковкой.
Ответ №2:
По-видимому, класс, экземпляром которого является cstmt, не имеет (видимой) функции-члена с именем setDouble (int, java.lang.Двойной). Возможно ли, что это должно быть setDouble (int, double), и вы передаете экземпляр java.lang.Double и подпрограмма ожидает примитив типа double?