[英](JAVA/KOTLIN) Can I “convert” a string to call an existing variable? like “varname”.getvariable?
我可以使用字符串按名稱調用現有變量或 object 嗎? 這個問題有點抽象,但我正在尋找這樣的東西。
例子
var number = 5
var getnumber = "number"
if (getnumber.(???) > 10)
{...}
or
if ("number".(???) > 10)
{...}```
這是不可能的:在 class 級別,根本不存在局部變量名稱。
通常的解決方案是停止思考“python”或“javascript”,其中每個 object 都是一種HashMap<String, Object>
,而思考 java。
如果你只是無法擺脫 python/javascript 空間,或者問題從根本上歸結為這個想法,那么,你有你的答案:
制作Map<String, Object>
而不是局部變量:
Map<String, Integer> map = new HashMap<>();
map.put("number", 5);
var getNumber = "number";
if (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 }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.