Вызов Enum из другого класса - PullRequest
       2

Вызов Enum из другого класса

0 голосов
/ 30 сентября 2018

Это может быть слишком простой вопрос.Я пробовал способы, которые уже даны, но это не работает.Я хочу вызвать ENUM из другого класса.

   package com.blackjack.game.cards;
public enum Card implements Comparable<Card> {

    ACE(1, 11),
    KING(13, 10),
    QUEEN(12, 10),
    JACK(11, 10),
    TEN(10, 10),
    NINE(9, 9),
    EIGHT(8, 8),
    SEVEN(7, 7),
    SIX(6, 6),
    FIVE(5, 5),
    FOUR(4, 4),
    THREE(3, 3),
    TWO(2, 2);

    public final int rank;
    public final int value;
    private static final String[] CARD_NAMES = {
            "joker", "ace", "two", "three",
            "four", "five", "six", "seven",
            "eight", "nine", "ten", "jack",
            "queen", "king"
    };

    private Card(final int rank, final int value) {
        this.rank = rank;
        this.value = value;
    }

    public int getRank() {
        return rank;
    }

    public int getValue() {
        return value;
    }

Я делаю это следующим образом, но он не работает.

import com.blackjack.game.cards.Card; Card card = new Card.ACE;

1 Ответ

0 голосов
/ 30 сентября 2018

В Java Вам не нужно использовать new для доступа к значению перечисления:

Card card = Card.ACE;

Еще одно примечание: поскольку у вас есть общедоступные методы получения, почему бы не использовать частные поля:

 private final int rank;
 private final int value;

И еще одно примечание: похоже, что CARD_NAMES нигде не используются и являются закрытыми.

Перечисление может содержать имя в поле String:

private final int rank;
private final int value;
private final String name;

public String getName() {return name;}

Когда высоздать перечисление:

ACE(1, 11, "ace"),
KING(13, 10, "king")
....

Кроме того, вы можете получить доступ к именам созданных перечислений с помощью встроенного метода name();Вот пример:

String name = Card.ACE.name();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...