Java中isAssignableFrom()方法与instanceof()方法用法
一句话总结:
- isAssignableFrom()方法是从类继承的角度去判断,instanceof()方法是从实例继承的角度去判断。
- isAssignableFrom()方法是判断是否为某个类的父类,instanceof()方法是判断是否某个类的子类。
1. Class.isAssignableFrom()方法
Class.isAssignableFrom()是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口。
格式为:
Class1.isAssignableFrom(Class2)
调用者和参数都是java.lang.Class类型。
2.Class.instanceof()方法
Class.instanceof()是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
格式是:
obj instanceof TypeName
第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如 String,InputStream。其返回值为boolean。
3.具体用法
转自(http://sunnylocus.iteye.com/blog/555676)
package com.bill99.pattern;
public class AssignableTest {
public AssignableTest(String name) {
}
/**
* 判断一个类是否是另一个类的父类
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom1() {
System.out.println("String是Object的父类:"+String.class.isAssignableFrom(Object.class));
}
/**
* 判断一个类是否是另一个类的父类
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom2() {
System.out.println("Object是String的父类:"+Object.class.isAssignableFrom(String.class));
}
/**
* 判断一个类是否和另一个类相同
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom3() {
System.out.println("Object和Object相同:"+Object.class.isAssignableFrom(Object.class));
}
/**
* 判断str是否是Object类的实例
* 是打印true
* 否打印false
*/
public static void testInstanceOf1() {
String str = new String();
System.out.print("str是Object的实例:");
System.out.println(str instanceof Object);
}
/**
* 判断o是否是Object类的实例
* 是打印true
* 否打印false
*/
public static void testInstanceOf2() {
Object o = new Object();
System.out.print("o是Object的实例:");
System.out.println(o instanceof Object);
}
public static void main(String[] args) {
testIsAssignedFrom1();
testIsAssignedFrom2();
testIsAssignedFrom3();
testInstanceOf1();
testInstanceOf2();
}
}
结果:
String是Object的父类:false
Object是String的父类:true
Object和Object相同:true
str是Object的实例:true
o是Object的实例:true
Java中isAssignableFrom()方法与instanceof()方法用法的更多相关文章
- Java 中extends与implements使用方法
Java 中extends与implements使用方法 标签: javaclassinterfacestring语言c 2011-04-14 14:57 33314人阅读 评论(7) 收藏 举报 分 ...
- Java中的equals和hashCode方法
本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...
- Java中各种(类、方法、属性)访问修饰符与修饰符的说明
类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所 ...
- Java中替换HTML标签的方法代码
这篇文章主要介绍了Java中替换HTML标签的方法代码,需要的朋友可以参考下 replaceAll("\\&[a-zA-Z]{0,9};", "").r ...
- java中需要关注的3大方面内容/Java中创建对象的几种方法:
1)垃圾回收 2)内存管理 3)性能优化 Java中创建对象的几种方法: 1)使用new关键字,创建相应的对象 2)通过Class下面的new Instance创建相应的对象 3)使用I/O流读取相应 ...
- Java中字符串的一些常见方法
1.Java中字符串的一些常见方法 /** * */ package com.you.model; /** * @author Administrator * @date 2014-02-24 */ ...
- Java中的equals和hashCode方法详解
Java中的equals和hashCode方法详解 转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...
- java 中使用ajax调用后台方法注意事项
java 中使用ajax调用后台方法注意事项,后台方法一定要加@ResponseBody jQuery.validator.addMethod("checkRuleName",fu ...
- Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能
Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能. 下面是个例子: import org.junit.Test; import java. ...
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&q ...
随机推荐
- 虚拟机压力测试延迟高的可能原因及 ILPIP 配置 / 查询脚本
测试初期 Client VM 的延迟结果正常: 测试后期 Client VM 的延迟偶尔突增/连接失败,越后期超高延迟(比如 30 秒)出现越多: 问题分析 造成这一现象的根本原因很可能是 SNAT( ...
- mysql面试题目
昨天晚上无意中翻译到baidu的 dba(mysql,redis) 面试题,阅读了一下,发现没有一个自己能完美解释的.这确实是温床导致的思维懒惰. 具体几个问题如下: 1:MySQL InnoDB存储 ...
- man -k : nothing appropriate.
➜ workplace man -k zip zip: nothing appropriate. 出现这种情况,是索引库没有建立. man 和 whatis 共用一个索引库的. 我们使用 man w ...
- Spring Cloud 子项目介绍
Spring Cloud由以下子项目组成. Spring Cloud Config 配置中心——利用git来集中管理程序的配置. 项目地址:https://spring.io/projects/spr ...
- MySQL基础之 外键参照讲解
外键: 定义:如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表. 作用:外键是用来实现参照完整性的,不同的外键约束方式将可以是两张表紧密的结合起来.比如修改或者删除 ...
- 面向对象程序设计__Task6_Calculator1.6.2
The 4th part of the Calculator program _ Interface 题目链接:第六次作业(计算器第四步) github链接:Calculator_1.6.2 第六次作 ...
- [Python] 同时安装了python2和python3时,pip命令该如何使用?
当python2和python3同时安装windows上时,它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包. 而是要使用启动器py.exe来指定pip ...
- Android常见UI组件之ListView(一)
使用ListView显示一个长的项列表 1.新建一个名为"BasicView5"的Android项目. 2.改动BasicView5.java文件.改动后的程序例如以下: pack ...
- BZOJ1005:[HNOI2008]明明的烦恼(组合数学,Prufer)
Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N ...
- MacOS 快速搭建Odoo开发环境
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9307325.html 一:安装PostgreSQL 下载并安装PostgreSQL数据库:http://do ...