Java—是否可以在不创建新实例的情况下从内部类返回值

Java—是否可以在不创建新实例的情况下从内部类返回值,java,class,inner-classes,static-classes,Java,Class,Inner Classes,Static Classes,我想创建这样的结构,用户可以进入内部类,并接收一个值,即使他停止在类本身上 下面是一些例子 public abstract class TREE { public static class PLAYER{ private static final int value = 100; //(idea example)where to store inner PLAYER value public static final int NAME = 0;

我想创建这样的结构,用户可以进入内部类,并接收一个值,即使他停止在类本身上

下面是一些例子

public abstract class TREE {
    public static class PLAYER{
        private static final int value = 100; //(idea example)where to store inner PLAYER value
        public static final int NAME  = 0;
        public static final int SURNAME  = 1;
    } 
}
而使用

int a = TREE.PLAYER.NAME;
int b = TREE.PLAYER;
我也希望能够使用

int a = TREE.PLAYER.NAME;
int b = TREE.PLAYER;
我宁愿不使用任何函数,而只是使用点运算符遍历路径。值本身可以存储在类中(就像在我的示例中的PLAYER class value下),或者以其他方式返回,但我不知道这是否可行

也许我不知道的其他结构更适合这种结构


感谢树。PLAYER是一种类型,因此您只能执行以下操作

Class b = TREE.PLAYER.class;
如果你想得到一个像
int
这样的值,你需要引用一个可以转换为int的公共字段


Java不支持添加语法糖来假装类是一个int字段。

不幸的是,在Java中不能定义“默认”值。在Java中,当您有一些语法结构时,您可以期望它的行为一致。不幸的是,这也阻止了你创造“魔法”

回到您的情况,最接近“默认”值的是创建与类同名的函数。在这种情况下,您可以通过在“类名”中添加空括号来访问“默认”值:

另一种选择是使用在Java中合法的短标识符,如
$
\uuuu

public final static class PLAYER {
    private PLAYER() {
    }

    public final static int _ = 1;
    public final static int $ = 1;
    public final static int VALUE = 1;
    public final static String NAME = "Player";
}

因此,您可以像这样访问“默认值:
TREE.PLAYER.$

是否要使用指定的值初始化PLAYER类?为什么不使用构造函数呢?而且,它不是一个内部类。这是一个静态的嵌套类。您希望以
树的形式获取哪个值。PLAYER
?我想从不同的嵌套静态类获取基本体byte、short和int@DarthCoder Id要将这些值预先定义为常量,在运行时不会更改任何值。@Scavs我真的没有得到您想要的。PLAYER是一个类,它是PERSON类的骨架。如果你想让它成为一种价值,那么我不确定你在寻找什么。如果你看的是Enum,那将是一个非常不同的故事。谢谢,是的,我想使用函数是我在这里的唯一赌注。感谢你的贡献,非常感谢Anks的答案,我仍然想知道java.lang原语包装器是如何被返回并赋值的。整数a=5;int b=a;不能为非实例类创建相同的类吗?@Scavs这被调用,并且仅在语言级别上支持预定义的值类型。创建自己的盒装类型是不可能的。