Java 源于add()方法的运行时错误(尝试重写时)
所有这些类都可以正常编译,但当我尝试运行tester类时,它会返回以下错误: java.lang.NullPointerException: 空的 java.lang.NullPointerException 在Bin.add(Bin.java:23) 位于BinTest.main(BinTest.java:11) 以下是课程: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
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欢迎:)请接受答案,结束您的问题。