编写我自己的包装器 class 并声明其元素数组

Writing my own wrapper class and declaring array of its elements

我写了简单的 class TheChar,它是原始类型 char 的包装器 class。

public class TheChar {
    private char value;
    public TheChar(char value) {
        this.value = value;
    }
    public char getValue() {
        return value;
    }
}

为什么我不能像这样声明一个 TheChars 数组:

public class Test {
    public static void main(String[] args) {
        TheChar[] lol =  {'o','a'};
    }
}

因为当我使用字符 class 声明时

Character[] lol = {'o','a'};

会很好地分叉

您必须先包装 chars,如:

TheChar[] lol = {new TheChar('o'), new TheChar('a')};

因为 'a'char,不能转换为自定义 class

Character 不是原语 char 的简单包装器,java 编译器支持它们之间的转换。为了能够按照您想要的方式定义数组,您不仅需要编写包装器,还需要编写 java 编译器。