0

考虑这段代码:

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

编译器错误信息:

错误 - 找不到符号 - 构造函数 item();

item

public class item
{
    // Attributes
    private String Itemcode;
    private String Itemname;
    private String Description;
    private String Style;
    private String Finish;
    private float  Unitprice;
    private float  Stock;
    private String Suppliercode;
    private String Suppliername;
    private String Address;

    public item(String ItemcodeIn, String ItemnameIn, String DescriptionIn,
                String StyleIn, String FinishIn, float UnitpriceIn, float StockIn,
                String SuppliercodeIn,
                String SuppliernameIn, String AddressIn)
    {
        Itemcode = ItemcodeIn;
        Itemname = ItemnameIn;
        Description = DescriptionIn;
        Style = StyleIn;
        Finish = FinishIn;
        Unitprice = UnitpriceIn;
        Stock = StockIn;
        Suppliercode = SuppliercodeIn;
        Suppliername = SuppliernameIn;
        Address = AddressIn;
    }

此代码之后是属性的所有 setter/getter 方法。

我该如何解决这个问题?

4

4 回答 4

10

创建参数化构造函数时,默认构造函数将被删除,除非您创建自己的构造函数。

因此,您必须显式创建一个默认构造函数,如下所示:

public Item() {}
于 2012-05-15T18:21:22.137 回答
6

您需要添加一个默认构造函数:

public item() {
   // any initialization you need here
}

您还应该根据最佳实践将您的类重命名为Item(capital I),并且您的字段应该以小写字母开头。

于 2012-05-15T18:21:37.680 回答
2

你的Item类只有 1 个构造函数:

public item(String ItemcodeIn, String ItemnameIn, String DescriptionIn, 
     String StyleIn, String FinishIn, float UnitpriceIn, float StockIn, 
     String SuppliercodeIn, String SuppliernameIn, String AddressIn)

尽管您尝试通过new Item();此构造函数来访问它,但由于您已用参数化的构造函数覆盖了它,因此该构造函数不存在。

您应该在创建Item或创建另一个通用构造函数时提供这些参数:

public Item() {
    // Some code goes here
}
于 2012-05-15T18:23:53.653 回答
0

每当您不编写任何构造函数时,默认构造函数默认在类中可用。但是,如果您在任何类中定义编写参数化构造函数,则只有该参数化构造函数可用。在这种情况下,您将必须显式定义默认构造函数。

于 2012-05-15T18:55:49.010 回答