4
public enum Rank {
    TEN("Ten",1),
    NINE("Nine",2),
    EIGHT("Eight",0),
    SEVEN("Seven",0);


    private final String name;
    private final int point;

    /*
     * @param rank should be byte
     */
    private Rank(String name,int point)
    {
        this.name=name;
        this.point=point;
    }

如何将 int 替换为 byte in point。我能想到的一种方法是使用TEN("Ten",Byte.parseByte("1"));

有没有更好或/和更短的方法?

4

3 回答 3

12

就像cast这样byte

public enum Rank {
    TEN("Ten", (byte)1),
    NINE("Nine", (byte)2),
    EIGHT("Eight", (byte)0),
    SEVEN("Seven", (byte)0);


    private final String name;
    private final byte point;

    private Rank(String name, byte point)
    {
        this.name = name;
        this.point = point;
    }
于 2013-07-13T20:58:14.320 回答
3

一个更短的方法是铸造。

TEN("Ten", (byte) 1));
于 2013-07-13T20:57:24.437 回答
2

只是一个风格建议,在构造函数中移动演员,所以它看起来更干净:

public enum Rank {
    TEN("Ten", 1),
    NINE("Nine", 2),
    EIGHT("Eight", 0),
    SEVEN("Seven", 0);


    private final String name;
    private final byte point;

    private Rank(String name, int point)
    {
        this.name = name;
        this.point = (byte)point;
    }
于 2017-06-08T09:36:29.407 回答