Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在java中实例化该类型_Java - Fatal编程技术网

无法在java中实例化该类型

无法在java中实例化该类型,java,Java,我试图运行以下代码: public class inventory { private static item[] inventory; static java.util.Scanner scanner = new java.util.Scanner(System.in); private static int noOfItems; public static void main(String[] args) {

我试图运行以下代码:

public class inventory {
    private static item[] inventory;
    static java.util.Scanner scanner = new java.util.Scanner(System.in);          
    private static int noOfItems;       

    public static void main(String[] args) {
        noOfItems=0;        

        // TODO Auto-generated method stub
        inventory=new item[10];
        run();      
    }

    public static int displayMenu()
    {
        System.out.println("1.Add Item");
        System.out.println("2.Find Item");
        System.out.println("3.Delete Item");
        System.out.println("4.Count Item");
        System.out.println("5.Exit");
        System.out.println("Please enter your choice:");
        int i=scanner.nextInt();
        return i;   
    }

    public static void run()
    {
        while(true)
        {
            int i=displayMenu();
            switch(i)
            {
            case 1:addItem();
                    break;
            case 2:findItem();
                    break;
            case 4:countItem();
                    break;
            case 5:return;
            default:System.out.println("Invalid choice");
            }
        }
    }

    public static <Item> void addItem()
    {
        System.out.print("Enter Item namme:");
        String item_name=scanner.next();
        System.out.print("Enter barcode:");
        String barcode=scanner.next();
        System.out.print("Enter price:");
        double price=scanner.nextDouble();
        Item b=new Item(item_name,barcode,price);
        if(noOfItems==inventory.length)
            System.out.println("Array is full");
        else
        {
            inventory[noOfItems++]=b;
            System.out.println("Item added successfully");
        }
    }   

    public static void findItem()
    {
        System.out.print("Enter item name:");
        String item_name=scanner.next();
        for(int i=0; i<noOfItems; i++)
        {
            if(item_name.equalsIgnoreCase(inventory[i].getItem_name()))
            {
                System.out.println("Item found:");
                System.out.print(inventory[i]);
                return;
            }                           
        }       

    }

    public static void countItems()
    {
        System.out.println("Num of items:"+noOfItems);
        for(int i=0; i< noOfItems; i++)
            System.out.println(inventory[i]);
    }
}

这是我提到的另一个代码,第一个,实际上程序也没有正常运行。有人能帮我解决这个问题吗?谢谢。

您的代码中有几个问题:

1.构造函数返回类型 构造函数没有返回类型,因此只需在
公共作废项目(字符串项目名称、字符串条形码、双倍价格)中删除
作废
,否则它将不会被视为构造函数,而是作为一种正常方法

public Item(String item_name,String barcode,double price)
{
    this.item_name=item_name;
    this.barcode=barcode;
    this.price=price;
}
2.类名 Java是一种区分大小写的语言,因此您需要在构造函数和类名之间使用完全相同的名称(包括大小写),因此,如果您的构造函数是
公共项(字符串项\u名称、字符串条形码、双倍价格)
则您的类名应该是
而不是
。您需要修复代码中所有的类名,否则它将无法工作

3.
addItem的有界类型
您需要从
addItem()
的方法声明中删除
,否则编译器将混淆有界类型
,从而无法编译

因此,它应该是:

public static void addItem()

您已经为构造函数指定了返回类型。 去掉那个

改变

public void Item(String item_name,String barcode,double price)
{
    this.item_name=item_name;
    this.barcode=barcode;
    this.price=price;
}


构造函数不应该有返回类型。

这修复了三个问题中的一个,但不是OP在其发布的错误消息中提到的问题(以及另一个您也错过的问题)。
public void Item(String item_name,String barcode,double price)
{
    this.item_name=item_name;
    this.barcode=barcode;
    this.price=price;
}
public Item(String item_name,String barcode,double price)
{
    this.item_name=item_name;
    this.barcode=barcode;
    this.price=price;
}