class1.isAssignableFrom(class2) 判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。如果是则返回 true;否则返回 false。如果该 Class 表示一个基本类型,且指定的 Class 参数正是该 Class 对象,则该方法返回 true;否则返回 false。
1. class2是不是class1的子类或者子接口
2. Object是所有类的父类
一个例子搞定:
package com.auuzee.test1; class A { } class B extends A { } public class Test1 { public static void main(String[] args) { A a = new A(); B b = new B(); A ba = new B(); System.out.println("1-------------"); System.out.println(A.class.isAssignableFrom(a.getClass())); System.out.println(B.class.isAssignableFrom(b.getClass())); System.out.println(A.class.isAssignableFrom(b.getClass())); System.out.println(B.class.isAssignableFrom(a.getClass())); System.out.println(A.class.isAssignableFrom(ba.getClass())); System.out.println(B.class.isAssignableFrom(ba.getClass())); System.out.println("2-------------"); System.out.println(a.getClass().isAssignableFrom(A.class)); System.out.println(b.getClass().isAssignableFrom(B.class)); System.out.println(a.getClass().isAssignableFrom(B.class)); System.out.println(b.getClass().isAssignableFrom(A.class)); System.out.println(ba.getClass().isAssignableFrom(A.class)); System.out.println(ba.getClass().isAssignableFrom(B.class)); System.out.println("3-------------"); System.out.println(Object.class.isAssignableFrom(b.getClass())); System.out.println(Object.class.isAssignableFrom("abc".getClass())); System.out.println("4-------------"); System.out.println("a".getClass().isAssignableFrom(Object.class)); System.out.println("abc".getClass().isAssignableFrom(Object.class)); } }
以上这篇Java中isAssignableFrom的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍Java class类 isAssignableFrom()方法及示例,包括了Java class类 isAssignableFrom()方法及示例的使用技巧和注意事项,需要的朋友参考一下 Class类方法 isAssignableFrom()方法在java.lang包中可用。 isAssignableFrom()方法用于检查此Class对象所表示的类或接口是否与该类或接口相同,或者
本文向大家介绍java 中 ChannelHandler的用法详解,包括了java 中 ChannelHandler的用法详解的使用技巧和注意事项,需要的朋友参考一下 java 中 ChannelHandler的用法详解 前言: ChannelHandler处理一个I/O event或者拦截一个I/O操作,在它的ChannelPipeline中将其递交给相邻的下一个handler。 通过继承Cha
本文向大家介绍详解Java中final的用法,包括了详解Java中final的用法的使用技巧和注意事项,需要的朋友参考一下 概念 final 具有“不可改变的”的含义,可以修饰 非抽象类、非抽象成员方法和变量。 用 final 修饰的类不能被继承,没有子类。 用 final 修饰的方法不能被子类的方法覆盖(重写)。 用 final 修饰的变量表示常量,只能被赋一次值(声明变量的时候)。 注: fi
本文向大家介绍java中stringBuilder的用法详解,包括了java中stringBuilder的用法详解的使用技巧和注意事项,需要的朋友参考一下 String对象是不可改变的。每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如
本文向大家介绍Java中DecimalFormat用法详解,包括了Java中DecimalFormat用法详解的使用技巧和注意事项,需要的朋友参考一下 我们经常要将数字进行格式化,比如取2位小数,这是最常见的。Java 提供DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子。下面是一个例子: DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表
本文向大家介绍Java 中 Reference用法详解,包括了Java 中 Reference用法详解的使用技巧和注意事项,需要的朋友参考一下 Java Reference详解 在 jdk 1.2 及其以后,引入了强引用、软引用、弱引用、虚引用这四个概念。网上很多关于这四个概念的解释,但大多是概念性的泛泛而谈,今天我结合着代码分析了一下,首先我们先来看定义与大概解释(引用类型在包 Java.la