A. java中判斷一個對象是否實現了某個介面
/*************************************************************************** * 判斷對象o實現的所有介面中是否有szInterface * 2008-08-07 修正多繼承中判斷介面的功能, * 以及修正介面繼承後的判斷功能 * package test; * * public interface ITest extends Serializable * public class Test1 implements ITest * public class Test2 extends Test1 * public class Test3 extends Test2 * * isInterface(Test3.class, "java.io.Serializable") = true * isInterface(Test3.class, "test.ITest") = true * @param c * @param szInterface * @return */ public boolean isInterface(Class c, String szInterface) { Class[] face = c.getInterfaces(); for (int i = 0, j = face.length; i < j; i++) { if(face[i].getName().equals(szInterface)) { return true; } else { Class[] face1 = face[i].getInterfaces(); for(int x = 0; x < face1.length; x++) { if(face1[x].getName().equals(szInterface)) { return true; } else if(isInterface(face1[x], szInterface)) { return true; } } } } if (null != c.getSuperclass()) { return isInterface(c.getSuperclass(), szInterface); } return false; }
B. 如何在java反射中判斷某一類型是原始介面類型的包裝類
使用instanceof 關鍵字,instanceof是Java的一個二元操作符,是Java的保留關鍵字。它的作用是測試它左邊的對象是否是它右邊的類的實例,也可以測試介面。
public class Test
{
public static void main(String[] args)
{
Student student = new Student();
System.out.println(student instanceof Person);
}
}
class Student implements Person
{
}
interface Person
{
}
C. java判斷對象是否實現介面會報錯
java判斷對象是實現介面會報錯。因為java判斷對象所存儲的對象的類沒有實現Comparable介面就會報錯,屬於正常的程序現象。所以java判斷對象是實現介面會報錯。