Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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 源于add()方法的运行时错误(尝试重写时)_Java_Class_Methods_Arraylist_Overriding - Fatal编程技术网

Java 源于add()方法的运行时错误(尝试重写时)

Java 源于add()方法的运行时错误(尝试重写时),java,class,methods,arraylist,overriding,Java,Class,Methods,Arraylist,Overriding,所有这些类都可以正常编译,但当我尝试运行tester类时,它会返回以下错误: java.lang.NullPointerException: 空的 java.lang.NullPointerException 在Bin.add(Bin.java:23) 位于BinTest.main(BinTest.java:11) 以下是课程: public class BinItem { private String mySKU; private int myQuantity; pu

所有这些类都可以正常编译,但当我尝试运行tester类时,它会返回以下错误:

java.lang.NullPointerException:

空的

java.lang.NullPointerException

在Bin.add(Bin.java:23)

位于BinTest.main(BinTest.java:11)

以下是课程:

public class BinItem
{
    private String mySKU;
    private int myQuantity;

    public BinItem( String sku, int quantity )
    {
        mySKU = sku;
        myQuantity = quantity;
    }

    public String getSKU()
    {
        return mySKU;
    }

    public int getQuantity()
    {
        return myQuantity;
    }

    public String toString()
    {
        // Write code here to return a string using
        // the format: “SKU <sku>: <quantity>”. For
        // example: “SKU 12345-15: 4320”.
        return "SKU <" + getSKU() + ">: <" + getQuantity() + ">";
    }
}

import java.util.*;
public class Bin
{
    private String myName;
    private ArrayList<BinItem> myContents;
    public Bin( String name )
    {
        myName = name;
    }

    public String getName()
    {
        return myName;
    }

    public ArrayList<BinItem> getContents()
    {
        return myContents;
    }

    public void add( BinItem b )
    {
        myContents.add(b);
    }

    public String toString()
    {
        String s = "Bin " + myName + ":\n";
        for ( BinItem b : myContents )
        {
            s += b + "\n";
        }
        return s;
    }
} 

import java.util.*;
public class BinTest
{
    public static void main( String[] args )
    {
        ArrayList<Bin> warehouse = new ArrayList<Bin>();
        Bin a = new Bin("A");
        Bin b = new Bin("B");
        warehouse.add( a );
        warehouse.add( b );
        a.add( new BinItem("1234-0", 500 ) );
        a.add( new BinItem("1234-1", 25 ) );
        a.add( new BinItem("1234-2", 7720 ) );
        b.add( new BinItem("1234-3", 1000 ) );
        for ( Bin bn : warehouse )
        {
            System.out.println( bn );
        }
    }
}
public类BinItem
{
私有字符串mySKU;
私人数量;
公共BinItem(字符串sku,整数数量)
{
mySKU=sku;
我的数量=数量;
}
公共字符串getSKU()
{
返回mySKU;
}
公共整数getQuantity()
{
返回我的数量;
}
公共字符串toString()
{
//在此处编写代码以使用返回字符串
//格式:“SKU:”。用于
//示例:“SKU 12345-15:4320”。
返回“SKU:”;
}
}
导入java.util.*;
公共类垃圾箱
{
私有字符串myName;
私人ArrayList MyContent;
公共Bin(字符串名称)
{
我的名字=名字;
}
公共字符串getName()
{
返回我的名字;
}
公共ArrayList getContents()
{
返回mycontent;
}
公共作废添加(b项)
{
增加(b);
}
公共字符串toString()
{
字符串s=“Bin”+myName+:\n”;
用于(b项:霉菌含量)
{
s+=b+“\n”;
}
返回s;
}
} 
导入java.util.*;
公共类测试
{
公共静态void main(字符串[]args)
{
ArrayList仓库=新的ArrayList();
仓位a=新仓位(“a”);
银行标识代码b=新银行标识代码(“b”);
增加(a);
添加(b);
a、 增加(新项目(“1234-0”,500));
a、 增加(新项目(“1234-1”,25));
a、 增加(新项目(“1234-2”,7720));
b、 增加(新项目(“1234-3”,1000));
用于(银行标识代码:仓库)
{
系统输出打印项次(bn);
}
}
}

您尚未初始化
myContents
ArrayList。您必须在使用它之前初始化它

private ArrayList<BinItem> myContents = new ArrayList<BinItem>();
private ArrayList myContents=new ArrayList();

您尚未初始化
myContents
ArrayList。您必须在使用它之前初始化它

private ArrayList<BinItem> myContents = new ArrayList<BinItem>();
private ArrayList myContents=new ArrayList();

您从未初始化过mycontent。用这个

public Bin( String name )
    {
        myContents = new ArrayList<BinItem>();
        myName = name;
    }
public Bin(字符串名称)
{
myContents=newarraylist();
我的名字=名字;
}

您从未初始化过mycontent。用这个

public Bin( String name )
    {
        myContents = new ArrayList<BinItem>();
        myName = name;
    }
public Bin(字符串名称)
{
myContents=newarraylist();
我的名字=名字;
}

很明显,我的add()方法存在问题,但我一辈子都搞不清楚它是什么。任何帮助都将不胜感激,谢谢!很明显,我的add()方法存在问题,但我一辈子都搞不清楚它是什么。任何帮助都将不胜感激,谢谢!哦,天哪,我真傻。谢谢你们,我都没注意到。@alx欢迎:)请接受答案,结束你们的问题。哦,天哪,我真傻。谢谢大家,我甚至没有注意到。@alx欢迎:)请接受答案,结束您的问题。