导航:首页 > 编程语言 > 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判断相关的资料

热点内容
公司介绍源码兼容手机 浏览:290
为什么页面会服务器异常 浏览:369
两个服务器磁盘阵列如何用 浏览:411
葫芦娃小y版不用解压的 浏览:904
我的世界服务器如何永久夜视 浏览:23
java获取http文件 浏览:966
linux系统数据恢复 浏览:500
王者荣耀算法技巧 浏览:939
命令与征服凯恩之怒打不开 浏览:193
多目标免疫优化算法 浏览:131
加密证券数字化 浏览:51
相册加密文件在哪里找到 浏览:19
抖音独立电商app是什么意思 浏览:808
公司晨会解压小游戏 浏览:340
怎么加密成摩斯密码 浏览:665
流体机械pdf 浏览:187
编译器管理的存储cache 浏览:182
自行车维修pdf 浏览:532
霸道王子的绝对命令漫画免费 浏览:886
netbeans81php 浏览:274