How to reverse enum?

前端 未结 2 1647
不知归路
不知归路 2021-01-13 16:51

I have an Enum class below

public class PTalkCommand {
public enum Code {
        CLR((byte) 0),
        ACK((byte) 170),
        SER((byte) 0),
        NAK         


        
2条回答
  •  时光取名叫无心
    2021-01-13 17:18

    You could add this inner class to your enum:

        public static class Backwards implements Iterable {
    
            @Override
            public Iterator iterator() {
                return new Iterator() {
                    private Code[] codes = Code.values();
                    private int i = codes.length - 1;
    
                    @Override
                    public boolean hasNext() {
                        return i >= 0;
                    }
    
                    @Override
                    public Code next() {
                        if (i < 0) {
                            throw new NoSuchElementException();
                        }
                        return codes[i--];
                    }
    
                };
            }
    
        }
    

提交回复
热议问题