2013-04-04 98 views
2

我想创建一个小的库存控制程序,其中每个StockItem有5个实例变量,一个itemID,一个itemDesc,一个价格,一个数量和一个reOrderLevel。我已经在StockItem文件中设置了我的构造函数,并且在尝试创建测试程序文件以测试我的所有方法时遇到了问题。当我尝试使用我的构造函数创建一个新的StockItem,我得到的错误:调用构造函数时数据类型不正确

要求:字符串,字符串,双,INT,INT 发现:字符串,字符串,字符串,字符串,字符串

如何我可以修复这个错误吗?我不确定它是否是我的构造函数中的错误,或者如果我的测试器文件中的代码是错误的。

在此先感谢。

这里是我的构造函数代码:

public class StockItem { 

String itemID; 
String itemDesc; 
Double price; 
int quantity; 
int reOrderLevel; 
//declaring my instance variables  

public StockItem (String itemID, String itemDesc, Double price, int quantity, int reOrderLevel) {  
    this.itemID = itemID; 
    this.itemDesc = itemDesc; 
    this.price = price; 
    this.quantity = quantity; 
    this.reOrderLevel = reOrderLevel; 
} 

,这里是我的测试代码,到目前为止,试图创建一个项目:

public class StockItemTester { 

public static void main (String[] args) { 
    StockItem item1 = new StockItem ("ABC", "iPhone 5", " 500", "3", "10");  
}  

} 
+1

你知道一个方法/构造函数_signature_是什么吗? – Juvanis 2013-04-04 13:28:32

+0

在这种情况下,错误消息本身会为您提供大量信息。 – midhunhk 2013-04-04 13:30:39

+1

在附注上,你真的想要一个'Double'对象而不是'double'原始类型吗? – Quetzalcoatl 2013-04-04 13:39:53

回答

4

你必须根据构造函数签名传递类型:

StockItem item1 = new StockItem ("ABC", "iPhone 5", 500.0, 3, 10); 
           ^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^ 
           String String  Double int int 
           itemId itemDesc price qty reorderlevel 
+0

啊哈,我明白了,谢谢! – 2013-04-04 13:31:27

4

当您的构造函数需要不同的d时,您传入String s ata类型,如int s和double s。

你需要让你在正确的数据类型,通过改变你的构造:

new StockItem ("ABC", "iPhone 5", 500.0, 3, 10); // String, String, double, int, int 
2

你需要这样做:

StockItem item1 = new StockItem ("ABC", "iPhone 5", 500, 3, 10);  

在函数调用中引号的任何值被视为一个字符串。

+0

欢呼声,那整理它! – 2013-04-04 13:32:01

2

最后两个参数必须是类型int,以及之前的一个参数double根据您的类中的实例声明。

StockItem item1 = new StockItem ("ABC", "iPhone 5", 500, 3, 10);

2

是的,你是路过5串到想要2串和3号的方法。

你的方法调用更改从:

StockItem item1 = new StockItem ("ABC", "iPhone 5", " 500", "3", "10"); 

到:

StockItem item1 = new StockItem ("ABC", "iPhone 5", 500, 3, 10); 
1

你不应该有3个左右的数值参数报价,即500和10的报价意味着他们是被认为是String而不是double和两个ints。

相关问题