簡體   English   中英

(JAVA/KOTLIN) 我可以“轉換”字符串以調用現有變量嗎? 像“varname”.getvariable?

[英](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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM