playingCard.javaファイルで定義されたArrayListの新しいインスタンスを初期化しようとしています。
import java.util.ArrayList;
public class PlayingCard
{
public enum Value { Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten,
Jack, Queen, King, Ace}
public enum Suit { Spades, Diamonds, Hearts, Clubs }
private final Value value;
private final Suit suit;
/**
* Constructs a card with specified initial value and suit
* @param value
* @param suit
*/
public PlayingCard(Value value, Suit suit)
{
this.value = value;
this.suit = suit;
}
/**
* Retrieves the value of a card
* @return value
*/
public Value getValue()
{
return value;
}
/**
* Retrieves the suit of the card
* @return suit
*/
public Suit getSuit()
{
return suit;
}
/**
* Custom toString
*@return value and suit as a string.
*/
@Override
public String toString()
{
return "PlayingCard[value=" + value + ", suit=" + suit + "]";
}
/**
* Format method to print out the value and suit of a card.
* @return value and suit as a string.
*/
public String format()
{
return value + " of " + suit + ", ";
}
/*private static final List<PlayingCard> deck = new ArrayList<PlayingCard>();
// Initialize deck
static
{
for (Suit suit : Suit.values())
{
for (Value value : Value.values())
{
deck.add(new PlayingCard(value, suit));
}
}
}*/
}
最後の12行ほどがコメントアウトされていない場合は、コードに問題はありません。ただし、別のテストドライバーでデッキを初期化し、コードをコピーするときに2つのエラーを受け取りたいと思います。テストドライバーは現在次のようになっています。
import java.util.ArrayList;
public class PlayingCardTester
{
public static void main (String[] args)
{
static List<PlayingCard> deck =
new ArrayList<PlayingCard>();
// Initialize deck
static
{
//for ea PlayingCard.Suit suit in PlayingCard.Suit.values()
for (PlayingCard.Suit suit : PlayingCard.Suit.values())
{
for (PlayingCard.Value value : PlayingCard.Value.values())
{
deck.add(new PlayingCard(value, suit));
}
}
}
}
}
テストドライバーの14行目にエラーがあります
static List<PlayingCard> deck = new ArrayList<PlayingCard>();
違法な表現の始まりだと言っています。ステートメントの前で別のキーワードを使用しようとしましたが、エラーは同じままです。2番目のエラーは、「null」とだけ書かれた最後の括弧です。私は列挙型を使用するのが初めてなので、それは私が見落とした非常に単純なものである可能性があります...