2014年3月24日 星期一

Android 開發 (三十五) reflection 判斷繼承關係

在使用物件導向開發時我們常常會使用A instanceof B
代表 A為B的子類,例如ArrayList instanceof List

假設今天必須實做的是class<?> type呢
我查詢了許多方法,目前找到比較適合的方式是把所有的superclass都列出來直到找到最後一個為止(通常是Object)

例如 MainActivity.class.getsuperclass

   Class<?> superClass = MainActivity.class.getSuperclass();
   while(superClass.getName().indexOf("Object")<0)
   {
   
    Log.d("Ted", superClass.getName());
    superClass = superClass.getSuperclass();
   }
這樣就可以判別是否為正確的物件,當然判斷的時候必須包含package name,
例如 com.example.myactivity 之類的

沒有留言:

張貼留言