Java (爪哇/科特林)我可以吗;转换;调用现有变量的字符串?例如;varname";。获取变量?

Java (爪哇/科特林)我可以吗;转换;调用现有变量的字符串?例如;varname";。获取变量?,java,android,kotlin,Java,Android,Kotlin,我可以使用字符串按名称调用现有变量或对象吗? 这个问题有点抽象,但我在寻找这样的问题 范例 var number = 5 var getnumber = "number" if (getnumber.(???) > 10) {...} or if ("number".(???) > 10) {...}``` 这是不可能的:在类级别,局部变量名根本不存在 通常的解决方案是停止思考“python”或“javascript”,其中每个对

我可以使用字符串按名称调用现有变量或对象吗? 这个问题有点抽象,但我在寻找这样的问题

范例

var number = 5

var getnumber = "number"

if (getnumber.(???) > 10)
{...}

or 

if ("number".(???) > 10)

{...}```

这是不可能的:在类级别,局部变量名根本不存在

通常的解决方案是停止思考“python”或“javascript”,其中每个对象都是一种
HashMap
,而考虑java

如果您无法从python/javascript的空间中摆脱出来,或者问题从根本上归结为这个想法,那么,您有自己的答案:

制作一个
映射
而不是局部变量:

Map<String, Integer> map = new HashMap<>();
map.put("number", 5);
var getNumber = "number";
if (map.get(getNumber) > 10) { .... }
Map Map=newhashmap();
地图放置(“数字”,5);
var getNumber=“number”;
如果(map.get(getNumber)>10{…}

如果有固定数量的条目,可以使用枚举:

private enum class Size(val cm: Int) {
    SMALL(50),
    MEDIUM(100),
    LARGE(150),
}
用法可能类似于:

val sizeOne = Size.MEDIUM
val sizeTwo = Size.LARGE

if(sizeOne.cm > sizeTwo.cm ) { ... }

val sizeHundred = Size.values().find { it.cm == 100 }

在此基础上进行扩展:通过反射,您可以访问对象/类成员变量,例如类的“字段”:
final Field=cls.getDeclaredField(“fielName”);int val=field.getInt(obj)
@JayC667不确定这是否相关。局部变量与字段没有任何关系。正如您所说的,纯Java不可能访问方法变量。但可能的是对类和成员变量执行这些操作。也许这对他有帮助,他以一种可以使用成员变量的方式重新构造代码。谁知道。。。只是想给他一个完整的画面。或者你继续扩展Lombok,做一些预处理/编译和字节码编织魔术,他就可以用你的库得到他所需要的;-)您想建议java新手使用反射以Python的方式在java中编写代码吗?那是。。糟糕的建议。这不是你想要的,也不是建议。这是一个解决办法。许多可能的解决方案之一。让他自己决定是否要使用它。他自己也知道这是“一个抽象的问题”。但我们知道他的最终意图吗?当谈到编程基础知识时,我决不会放弃解决方案,因为有些人可能没有我个人认为必要的技能集/水平。我们可以在这里假设XY问题,但这有多种方式。所以我们可以麻烦,或者我们可以归因于一个更完整的画面。