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