当前位置:  开发笔记 > 编程语言 > 正文

除了instanceof运算符之外还有什么方法可以在java中进行对象类型比较吗?

如何解决《除了instanceof运算符之外还有什么方法可以在java中进行对象类型比较吗?》经验,为你挑选了2个好方法。

我记得在一些Java书中读到除了'instanceof'之外的任何运算符,用于比较两个对象之间的类型层次结构.

instanceof是最常用和最常见的.我无法清楚地记得是否确实存在另一种做法.



1> Chris Jester..:

你也可以,主要用于反思Class.isInstance.

Class stringClass = Class.forName("java.lang.String");
assert stringClass.isInstance("Some string");

显然,如果在编译时知道类的类型,那么instanceof仍然是最好的选择.



2> OscarRyz..:

就在这里.不是运算符而是Class类的方法.

这是: isIntance(对象o)

从文档引用:

...此方法是Java语言instanceof运算符的动态等价物

public class Some {
    public static void main( String [] args ) {
        if ( Some.class.isInstance( new SubClass() ) ) {
            System.out.println( "ieap" );
        } else { 
            System.out.println( "noup" );
        }
    }
}
class SubClass extends Some{}

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有