梦魇等级 - 花车/弦乐

时间:2012-05-15 19:03:12

标签: java class

这是我的课程对新项目的责备,从一开始它就是一场彻头彻尾的噩梦,我似乎无法解决我面临的问题:

Item中的

setStock(float)不能应用于()

项目条目:

private void writeItemRecord()
         {
             // Check to see if we can connect to database table
             if ( DataBaseHandler.makeConnectionToitemDB() == -1)
               {
                   JOptionPane.showMessageDialog (frame, "Unable to connect to database table (Item)");
               }
             else  // Ok, so first read data from the text fields
               {
                   // Read data from form and store data     

                   String Itemname = ItemnameTxtField.getText();
                   String Itemcode = ItemcodeTxtField.getText();
                   String Description = DescriptionTxtField.getText();
                   String Unitprice = UnitpriceTxtField.getText();
                   String Style = StyleTxtField.getText();
                   String Finish = FinishTxtField.getText();
                   String Stock = StockTxtField.getText();



                   // Convert priceStr to a float
                   Float fvar = Float.valueOf(Unitprice);
                   float price = fvar.floatValue();

                   Float svar = Float.valueOf(Stock);
                   float stock = svar.floatValue();

                   // Create a Item oject
                   Item Item = new Item();

                   // Set the attributes for the Item object

                   Item.setItemname (Itemname);
                   Item.setItemcode (Itemcode);
                   Item.setDescription (Description);
                   Item.setUnitprice (price);
                   Item.setStock(stock);
                   Item.setStyle(Style);
                   Item.setFinish(Finish);

                   // Write Item record.  Method writeToItemTable() returns
                   // 0 of OK writing record, -1 if there is a problem.  I store
                   // the returned value in a variable called error.
                   int error = DataBaseHandler.writeToItemTable(Item.getItemname(),
                                                                Item.getItemcode(),
                                                                Item.getDescription(),
                                                                Item.getUnitprice(), 
                                                                Item.setStock(),
                                                                Item.setStyle(Style),
                                                                Item.setFinish(Finish),
                                                                Item.setSuppliercode(Suppliercode),
                                                                Item.setSuppliername(Suppliername),
                                                                Item.setAddress(Address)
                                                                );

                   // Check if there is a problem writing the record, in 
                   // which case error will contain -1                                         
                   if (error == -1)
                     {
                         JOptionPane.showMessageDialog (frame, "Problem writing record to Item Table");
                     }

                  // Clear the form - actual method is coded below
                  clearForm();

                  // Close database connection.  Report an error message
                  // if there is a problem.
                  if ( DataBaseHandler.closeConnection() == -1 )
                     {
                         JOptionPane.showMessageDialog (frame, "Problem closing data   base conection");
                     }
                }

         }  // End

非常感谢任何帮助!

项目摘录:

public void setStock(float StockIn)
  {
      Stock = StockIn;
  }   

public float getStock()
  {
     return Stock;
  }  

6 个答案:

答案 0 :(得分:5)

对于初学者,请遵守Java命名约定。除了类/接口名称之外,不允许使用CamelCase。使用lowerCamelCase。至于你的“问题”,你写了

Item.setStock(),
显然,它给你的错误。它还会为您提供错误的确切行号,这显然可以帮助我们诊断您的问题。

解决方案:使用Item.getStock()(我想,这很难说)。在那个位置调用Item.setStock(作为方法调用的参数)无论如何都是没有意义的,因为setStock是一个void方法。

答案 1 :(得分:3)

Java编译器错误带有行号 - 请注意它。这是你的问题:

Item.setStock()

setStock()需要一个参数,您试图在没有参数的情况下调用它。也许你的意思是getStock()?我怀疑将参数列表中的方法设置为writeToItemTable的所有调用也是错误的,因为这些set方法将void作为返回值,因此您不能以这种方式使用它们。 / p>

答案 2 :(得分:1)

setStock方法如下所示:

public void setStock(float StockIn)

要调用它,您需要传递一个float作为参数。在代码的某处,您可以调用方法,如下所示:

Item.setStock(),

该方法需要使用float参数调用,而是使用none调用它,因此您会看到编译错误。

答案 3 :(得分:1)

在此代码中:

int error = DataBaseHandler.writeToItemTable(Item.getItemname(),
                                             Item.getItemcode(),
                                             Item.getDescription(),
                                             Item.getUnitprice(), 
                     // Right here -->       Item.setStock(),
                                             Item.setStyle(Style),
                                             Item.setFinish(Finish),
                                             Item.setSuppliercode(Suppliercode),
                                             Item.setSuppliername(Suppliername),
                                             Item.setAddress(Address)
                                             );

请注意,您正在呼叫Item.setStock()Item.setStyle(Style)等,而不是Item.getStock()Item.getStyle()等。这可能是您问题的根源 - 您'尝试不带参数调用setStock()方法,因此出错。

希望这有帮助!

答案 4 :(得分:1)

这一行

// Create a Item oject
               Item Item = new Item();

有问题。使用变量的大写名称不仅是Java中的错误样式,这个特定的实例会导致编译错误。此外,您在没有参数的情况下调用setStock。你也需要解决这个问题。

答案 5 :(得分:1)

这是您的错误:

int error = DataBaseHandler.writeToItemTable(Item.getItemname(),
    Item.getItemcode(),
    Item.getDescription(),
    Item.getUnitprice(), 
    Item.setStock(), // <<< here! should be getStock()
    Item.setStyle(Style),
    Item.setFinish(Finish),
    Item.setSuppliercode(Suppliercode),
    Item.setSuppliername(Suppliername),
    Item.setAddress(Address));

但是再次......考虑命名/编码惯例。