導航:首頁 > 編程語言 > 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判斷相關的資料

熱點內容
linux系統數據恢復 瀏覽:500
王者榮耀演算法技巧 瀏覽:939
命令與征服凱恩之怒打不開 瀏覽:193
多目標免疫優化演算法 瀏覽:130
加密證券數字化 瀏覽:51
相冊加密文件在哪裡找到 瀏覽:19
抖音獨立電商app是什麼意思 瀏覽:808
公司晨會解壓小游戲 瀏覽:340
怎麼加密成摩斯密碼 瀏覽:665
流體機械pdf 瀏覽:187
編譯器管理的存儲cache 瀏覽:181
自行車維修pdf 瀏覽:532
霸道王子的絕對命令漫畫免費 瀏覽:886
netbeans81php 瀏覽:273
javathreadstop 瀏覽:307
域名解析分發源碼免費 瀏覽:851
百戰程序員教學視頻 瀏覽:626
上海演算法模型人工智慧零基礎培訓 瀏覽:672
安卓90什麼時候會普及 瀏覽:182
小學點點之間線的演算法 瀏覽:100