導航:首頁 > 編程語言 > javaclass判斷

javaclass判斷

發布時間:2025-05-22 11:13:59

1. java如何判斷一個類是否實現了某個介面

Class中有個方法 public native boolean isAssignableFrom(Class<?> cls)用來判斷子類是否繼承於父類的或者父介面的。

你會這樣子寫:

Class clazz = ....;

clazz.isAssignableFrom(子類名稱);返回true說明是掛號里的類的父類或父介面。

clazz.isAssignableFrom(子類名稱)里的子類名稱跟版本有關,好像是1.5以上的JDK這里的子類名稱都是使用的泛型編程。即傳的傳數是

class<T> 類型的,你用的時候自己斟酌下版本問題。

而常用的instanceof(class ..)是指該實例是否屬於掛號中的類的父類的一個實例。

如上面的例子:

class A{

}

public class B extends A{

public static void main(String[] args){

Class clazz = B.class;

Class class1 = A.class;

System.out.println(class1.isAssignableFrom(clazz));

if(class1.isAssignableFrom(clazz)){

System.out.println("A是B的父類");

}else{

System.out.println("A不是B的父類");

2. java判斷是不是基本類型,基本類型與對應的包裝類

isPrimitive() 可以判斷是否為基本類型

完整為:aClass.getMethod(getMethodName).getReturnType().isPrimitive()
包裝類可以為:Number.class.isAssignableFrom(methodReturnType) 重點是isAssignableFrom()方法

3. 怎麼知道Java class文件JDK編譯的版本號

首先用一些二進制查看器打開class文件,比如od或者hexmp工具。

od -x hello.class
或者
hexmp hello.class
我們會看到類似於下面的輸出:
feca beba 0000 3300

這里我們看到前四個位元組是Java class的特殊符號,叫做magic欄位,用來告訴JVM這是個class文件,之後的兩個位元組是minor版本號,再之後的兩個位元組是major版本號,我們看到時33,對應下表我們知道33時JDK1.7編譯的版本號。

十六進制
JDK1.5 31
JDK1.6 32
JDK1.7 33
JDK8 34

因為Java是向後兼容的,所以高版本的兼容低版本的,所以有時候你遇到java報: unsupported major.minor version 51,那就是你用低版本的虛擬機去運行高版本JDK編譯的class文件了,所以低版本的虛擬機就抱怨了。這里的51是十進制,也就是十六進制的33,及對應JDK1.7,如果出現這種錯誤,你肯定是使用低於1.7版本的虛擬機去運行這個了。

閱讀全文

與javaclass判斷相關的資料

熱點內容
android游戲程序員 瀏覽:987
訪問銀行網站用什麼dns伺服器 瀏覽:456
如何搜索ftp文件伺服器 瀏覽:649
c與sql的教務系統壓縮包 瀏覽:653
jsp企業網站源碼下載 瀏覽:45
餓了么app怎麼評論商家 瀏覽:658
淘寶客源碼免費下載 瀏覽:587
書迷app怎麼把書加入書架 瀏覽:985
php自適應導航源碼 瀏覽:801
鴻蒙系統怎麼把app放一起 瀏覽:145
單片機埠配置 瀏覽:686
清華程序員年薪多少 瀏覽:10
KDJ動畫指標源碼公式 瀏覽:27
單片機真假 瀏覽:296
app目標用戶怎麼寫 瀏覽:244
文件夾怎麼修改別人打不開 瀏覽:276
大連雲伺服器 瀏覽:691
outlook怎麼換伺服器地址 瀏覽:262
51單片機的tr 瀏覽:264
為啥個人辦不了解壓手續 瀏覽:260