當我嘗試編譯此代碼時,它運行良好,但是當我想測試方法時,第一種方法運行良好,但第二種方法拋出的異常錯誤指針等於空,但如果我改變scanner = null;
到scanner = new Scanner(System.in);
它工作正常,所以我怎麼能解決這個問題,而每次創建一個新的掃描儀將掃描器對象設置爲空
public class Sca extends input
{
private Scanner scanner;
private String userInput;
public ArrayShoppingList11()
{
super();
scanner = new Scanner(System.in);
}
protected void addCar()
{
System.out.println("Please enter the name of the Car to be added");
userInput = scanner.nextLine();
super.add(userInput);
setScanner();
}
protected int getPosition()
{
System.out.println("Please enter the name of the car");
userInput = scanner.nextLine();
int z = super.indexOf(userInput);
System.out.println("The position of " + userInput + "is: " + z); // used for the main class Testing purposes
setScanner();
return z;
}
private void setScanner()
{
if(scanner != null)
{
scanner = null;
}
}
}
公共類主要{
public static void main(String[] args) {
ArrayShoppingList1 a = new ArrayShoppingList1();
a .printList();
a.addCar();
a .getPosition();// returning the position of an item using name of the item
a .checkEmpty();
a.additem();
a .printList();
a .removeItem();// removing the item using the index of the item
}
}
你爲什麼要將掃描儀設置爲空? – kviiri
,因爲當我讀取userInput tiwce時,它只會從用戶那裏獲取第一個舊輸入並將其添加到掃描儀 –
@mohamedghassar:您沒有主要方法向我們展示如何測試此代碼,您也沒有代碼輸入類是這個擴展的類。很難測試你的代碼,看看你爲什麼需要這個kludge。我擔心你正在修復錯誤的錯誤。 –