Java是否可以在不创建新实例的情况下从内部类返回值
我想创建这样的结构,用户可以进入内部类,并接收一个值,即使他停止在类本身上
下面是一些例子
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;
我宁愿不使用任何函数,而只是使用点运算符遍历路径。值本身可以存储在类中(就像在我的示例中的PLAYER classvalue下),或者以其他方式返回,但我不知道这是否可行
也许我不知道的其他结构更适合这种结构
谢谢
# 1 楼答案
不幸的是,在Java中不能定义“默认”值。在Java中,当你有一些语法结构时,你可以期望它的行为一致。不幸的是,这也阻止了你创造“魔法”
回到您的情况,最接近“默认”值的事情是创建与类同名的函数。在这种情况下,您可以通过在“类名”中添加空括号来访问“默认”值:
另一种选择是使用在Java中合法的短标识符,如
$
或_
:所以你可以像这样访问“默认值:
TREE.PLAYER.$
# 2 楼答案
TREE.PLAYER
是一种类型,因此您只能执行以下操作如果你想得到一个像
int
这样的值,你需要引用一个可以转换为int的公共字段Java不支持添加语法糖来假装一个类是一个int字段