首页 > 解决方案 > (JAVA/KOTLIN)我可以“转换”一个字符串来调用一个现有的变量吗?像“varname”.getvariable?

问题描述

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

例子

var number = 5

var getnumber = "number"

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

or 

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

{...}```

标签: javaandroidkotlin

解决方案


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

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

如果你只是无法摆脱 python/javascript 空间,或者问题从根本上归结为这个想法,那么,你有你的答案:

制作 aMap<String, Object>而不是局部变量:

Map<String, Integer> map = new HashMap<>();
map.put("number", 5);
var getNumber = "number";
if (map.get(getNumber) > 10) { .... }

推荐阅读