我有一個Java的Android應用程序有點問題,我開發一個小遊戲,我加載動態有一些照片扔反思。使用對象的功能,通過反射在Java中的Android
我遇到了很多所謂的圖像(在我的遊戲我有圖片類的對象每個資源)對象的資產類別,其實這種圖像對象是一些額外的功能位圖。他們確實有一個叫做Resize的函數,我需要使用它。
目前我加載所有的圖像動態拋出反射在循環內,我有或多或少這樣的東西(不完全是這樣,但我已經寫了這樣,所以你可以瞭解它是如何作品):
Assets assetsRef = new Assets();
String name = "picture97";
picture = assetsRef.getClass().getField(name);
picture.set(picture, g.newImage(name, ImageFormat.RGB565));
但是,加載所有這些圖片後,我想應用稱爲Resize的函數。在其他方面,考慮到以前的代碼行,我想使用名爲picture97的對象中包含的函數,即在Assets類中的Image類型的變量。
任何人都可以幫到我嗎?我很確定應該有一種簡單的方法來通過反射來選擇一個對象,但到目前爲止我還沒有做到這一點。感謝
的
地塊作爲
反射不是一個例外,不能被拋出。你的意思是'*通過*反思'? – EJP
爲什麼不添加像Assets#getPicture(String name)這樣的東西(將它們存儲在一個由他們名字鍵入的Map中)並讓它返回一個Image,在這裏你可以輕鬆地調用這個resize方法?使用[反射]看起來過於複雜(https://developer.android.com/reference/java/lang/Class.html#getMethod%28java.lang.String,%20java.lang.Class%3C?%3E .. %29)。 – zapl
@zapl同意 - 反射對於Spring或EJB容器等工具包非常有用。 (over)在日常代碼中使用反射通常表示一個糟糕的設計,恕我直言。 –