Unusual “static” method declaration

后端 未结 3 1996
感动是毒
感动是毒 2021-01-18 14:17
public class Card {

    public enum Rank { DEUCE, THREE, FOUR, FIVE, SIX,
        SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE }

    public enum Suit { CLUBS, D         


        
3条回答
  •  耶瑟儿~
    2021-01-18 14:49

    As Grzegorz correctly points out, it's a static initializer block.

    Here is another resource explaining the difference between class initialization and instantiation, as well as the order in which class variables and static initializer blocks are called.

    A related concept is that of instance initializer blocks, which can be used together with anonymous classes for the handy double-brace initialization idiom:

    private static final Set VALID_CODES = new HashSet() {{
        add("XZ13s");
        add("AB21/X");
        add("YYLEX");
        add("AR2D");
    }};
    

提交回复
热议问题