import java.util.ArrayList;
import java.util.Iterator;
/**
* @author Stephanie Hoyt
* @version April 10, 2014
*/
public class Purse
{
private ArrayList<MyCoins> coins;
private int total;
/**
* Default constructor for objects of class Purse.
*/
public Purse()
{
coins = new ArrayList<MyCoins>();
}
/**
* Takes Coin as a parameter and adds Coin to the Purse.
**/
public void add(int coinValue)
{
coins.add(new MyCoins(coinValue));
total += coinValue;
}
/**
*
*/
public int getTotal()
{
return total;
}
/**
*
*/
public void showCoins()
{
coins = new ArrayList<MyCoins>();
Iterator<MyCoins> itr = coins.iterator();
while(itr.hasNext())
{
MyCoins c = itr.next();
System.out.println(c.getName());
}
}
}
所以我的问题在于showCoins()方法。我想打印出ArrayList的内容,硬币。代码编译但是当我运行时没有任何反应。所有其他方法都运行正常。 这个类与另一个有关,我将在下面发布。
public class MyCoins
{
private String myName;
private int myValue;
/**
* default constructor for MyCoins class.
*/
public MyCoins(String name, int value)
{
myName = name;
myValue = value;
}
/**
* Non-default constructor for MyCoins class.
*/
public MyCoins(int value)
{
myValue = value;
if(value == 1)
myName = new String("Penny");
else if(value == 5)
myName = new String("Nickel");
else if(value == 10)
myName = new String("Dime");
else if(value == 25)
myName = new String("Quarter");
else
throw new IllegalArgumentException("Enter the value of a US coin.");
}
/**
* Returns the current value of coins as an integer.
*/
public int getValue()
{
return myValue;
}
/**
* Returns myName as a String.
*/
public String getName()
{
return myName;
}
}
答案 0 :(得分:1)
您创建了ArrayList
但未添加任何内容。因此,获取迭代器并迭代迭代。所以没有什么可以打印的。
coins = new ArrayList<MyCoins>();
Iterator<MyCoins> itr = coins.iterator();
也许您正在尝试引用coins
实例字段。在那种情况下,摆脱
coins = new ArrayList<MyCoins>();
答案 1 :(得分:1)
从coins = new ArrayList<MyCoins>();
方法中删除showCoins()
。它用空列表替换当前钱包中的硬币列表。