簡體   English   中英

Java:使用字符串進行靜態訪問?

[英]Java: Static access using a string?

不太確定標題,但我有一個用於檢索某些紋理坐標的文件。 該文件稱為Assets,僅包含一堆項目,如下所示...

public static TextureRegion level1;

要訪問此文件,我只需要在程序的另一部分使用Assets.level1即可。

我想知道的是,是否可以通過字符串來執行此操作,例如代替Assets.level2,我可以執行類似Assets。(string)的操作,其中string =“ level2”

任何幫助都會很棒

而不是在那些為靜態字段的Assets類,你應該添加一個靜態方法來Assets

public static TextureRegion getTextureRegion(String name)
{
    // get it somehow
}

現在,對於“某種程度上”的部分:最簡單(也是最靈活)的方法是在包含以下內容的Assets類中具有Map<String, TextureRegion>Map是接口,在這種情況下, HashMap可能就足夠了)。紋理區域。 您如何將數據放入該地圖取決於您自己。 例如:

regions.put("level1", your_level_1_region);

然后,您的getTextureRegion變為:

public static TextureRegion getTextureRegion(String name)
{
    return regions.get(name);
}

這樣做的好處是可以在運行時確定這些區域(也許從文件中加載),而不用對其進行硬編碼。

(TextureRegion)Assets.class.getField("level2").get(null)

您可以使用Java Reflection API訪問基於變量的類的靜態字段。

TextureRegion lvl = (TextureRegion) Assets.class.getDeclaredField("level1").get(null);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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