spring3 学习 isAssignableFrom 与 instanceof 的认识
2014-04-18 15:44
218 查看
instanceof 针对实例
isAssignableFrom针对class对象
isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。
通常调用格式是
Class1.isAssignableFrom(Class2)
调用者和参数都是 java.lang.Class 类型。
而 instanceof 是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
格式是: oo instanceof TypeName
interImpl instanceof inter
第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如 String,InputStream。
Java代码
public static void main(String[] args) throws Exception {
ArrayList list = new ArrayList();
System.out.println(list instanceof List);
System.out.println(list.getClass().isAssignableFrom(List.class));
System.out.println(List.class.isAssignableFrom(list.getClass()));
public static void main(String[] args) throws Exception {
ArrayList list = new ArrayList();
System.out.println(list instanceof List);
System.out.println(list.getClass().isAssignableFrom(List.class));
System.out.println(List.class.isAssignableFrom(list.getClass()));
结果:
true
false
true
其中instanceof是子--》父
isAssignableFrom是夫--》子
我们应该尽量少用instanceof 运算符
应该尽量用多态来替代它
isAssignableFrom针对class对象
isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。
通常调用格式是
Class1.isAssignableFrom(Class2)
调用者和参数都是 java.lang.Class 类型。
而 instanceof 是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
格式是: oo instanceof TypeName
interImpl instanceof inter
第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如 String,InputStream。
Java代码
public static void main(String[] args) throws Exception {
ArrayList list = new ArrayList();
System.out.println(list instanceof List);
System.out.println(list.getClass().isAssignableFrom(List.class));
System.out.println(List.class.isAssignableFrom(list.getClass()));
public static void main(String[] args) throws Exception {
ArrayList list = new ArrayList();
System.out.println(list instanceof List);
System.out.println(list.getClass().isAssignableFrom(List.class));
System.out.println(List.class.isAssignableFrom(list.getClass()));
结果:
true
false
true
其中instanceof是子--》父
isAssignableFrom是夫--》子
我们应该尽量少用instanceof 运算符
应该尽量用多态来替代它
相关文章推荐
- spring3 学习 isAssignableFrom 与 instanceof 的认识
- 从头认识java-12.3 instanceof、isInstance和isAssignableFrom
- 从头认识java-12.3 instanceof、isInstance和isAssignableFrom
- instanceof, isinstance,isAssignableFrom的区别
- instanceof与isInstance,isAssignableFrom
- isAssignableFrom() 与 instanceof
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字有什么区别
- instanceof, isInstance, isAssignableFrom
- instanceof, isinstance,isAssignableFrom的区别
- instanceof, isinstance,isAssignableFrom的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- instanceOf,isInstance,Class,isAssignableFrom区别比较
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom与 instanceof 区别
- Java中isAssignableFrom()方法与instanceof()方法用法
- 【Java知识点】Java中isAssignableFrom、instanceof、isInstance
- Class.isAssignableFrom(Class c)与instanceof关键字有何区别
- instanceof, isinstance,isAssignableFrom的区别
- Class.isAssignableFrom与 instanceof 区别
- isAssignableFrom 与 instanceof 的区别