instanceof 针对实例
isAssignableFrom针对class对象
isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。
通常调用格式是
Class1.isAssignableFrom(Class2)
调用者和参数都是 java.lang.Class 类型。
而 instanceof 是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
格式是:
oo instanceof TypeName
第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如 String,InputStream。
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
System.out.println(list instanceof List);
System.out.println(list instanceof ArrayList);
/* System.out.println(list.getClass());
System.out.println(List.class);
System.out.println(ArrayList.class);*/
System.out.println(list.getClass().isAssignableFrom(List.class));
System.out.println(List.class.isAssignableFrom(list.getClass()));
}
}
结果:
true
true
false
true
其中instanceof是子-->父
isAssignableFrom是父-->子
我们应该尽量少用instanceof 运算符
应该尽量用多态来替代它
public interface Accounts {
}
public class WaterAccounts implements Accounts {
}
public class ElectricityAccounts implements Accounts {
}
分享到:
相关推荐
JS中typeof与instanceof的区别
ES5的instanceof手写实现
15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof...
因为在项目中遇到了instanceof,因此总结了对instanceof关键字的理解,有需要的可以下载来看看。
instanceof使用详细说明 最详细的 不看后悔的
1. instanceof关键字 2. isInstance()方法 3. instanceof,isInstance,isAssignableFrom区别是什
实际上,在一个Web应用程序的执行期间,PHP 5提供给开发者至少两种方法来检查对象类型——它们分别是“instanceof”操作符和“类型提示”特征。现在转到本文的主题,我将介绍PHP 5中\\\"instanceof\\\"操作符的使用...
JS:typeof instanceof constructor prototype区别
instanceof 马克-to-win java视频的详细的描述介绍
NULL 博文链接:https://chaoyi.iteye.com/blog/2079574
typeof用以获取一个变量的类型,typeof一般只能返回如下几个结果... 如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。instanceof用于判断一个变量是否某个对象的实例
主要介绍了java中instanceof与Class的等价性代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
那么instanceof的这种行为到底是如何实现的呢,现在让我们揭开instanceof背后的迷雾。 instanceof原理 照惯例,我们先来看一段代码: 代码如下: function Cat(){} Cat.prototype = {} function Dog(){} Dog.prototype...
本文是对JS中typeof与instanceof之间的区别进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
向下转型和instanceof运算符的应用.pdf
java基础——方法的重写、多态+instanceof(csdn)————程序
主要介绍了Java的super关键字与instanceof运算符使用方法,是Java入门学习中的基础知识,需要的朋友可以参考下
typeof用以获取一个变量或者表达式的类型而instanceof用于判断一个变量是否某个对象的实例,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧