Ошибка двойного метода вызываемой инструкции

#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?