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

热点内容
51单片机的tr 浏览:263
为啥个人办不了解压手续 浏览:259
小孩子点读app怎么看课本 浏览:652
博客的源码怎么用 浏览:874
唐诗精选pdf 浏览:146
浏览器怎么保存整个源码 浏览:587
软件与服务器连接错误怎么办 浏览:573
加密狗的东西在哪里找 浏览:7
压缩玩具瓶子 浏览:706
怎么给老福特app评分 浏览:664
程序员成富二代 浏览:296
新闻学和程序员的薪资待遇 浏览:404
ecs服务器怎么样 浏览:408
阿里云服务器的安全组全部勾选 浏览:604
php教学网站 浏览:312
php正则表达式语法 浏览:622
at单片机下载方式 浏览:347
安卓新系统桌面布局怎么好看 浏览:546
ab源码下载 浏览:558
axureandroid控件下载 浏览:219