检查一个类是否扩展了另一个类的Java方法?

检查一个类是否扩展了另一个类的Java方法?,java,extends,Java,Extends,是否有任何方法可以检查一个类是否扩展了另一个类? 上面的代码是一段代码 File[] fileList = file.listFiles(); if(fileList != null){ for(int i = 0; i < fileList.length; ++i){ ClassName = fileList[i].getName(); if (fileList[i].isFile

是否有任何方法可以检查一个类是否扩展了另一个类? 上面的代码是一段代码

  File[] fileList = file.listFiles();
        if(fileList != null){
            for(int i = 0; i < fileList.length; ++i){
                ClassName = fileList[i].getName();
                if (fileList[i].isFile() && (Class Extends Class2) && ClassName.endsWith(".class")){
                    String ClassName1 = ClassName.split("\\.")[0];
                    if (!ClassName1.contains("$")){
                        if (packages != null){
                        <Snippet>
                        }
                    }
                }
            }
        }
File[]fileList=File.listFiles();
如果(文件列表!=null){
对于(int i=0;i
假设您有
A
B
类。要确定A是否扩展B,可以使用
instanceof
操作符测试
A
的实例。这就足够了:

if((new A()) instanceof B)
    return true;

假设您有类
A
B
。要确定A是否扩展B,可以使用
instanceof
操作符测试
A
的实例。这就足够了:

if((new A()) instanceof B)
    return true;

我现在觉得有点傻。。尽管我经常使用instanceof,但我从未想过这一点。无论如何多亏了很多人,这种方法的前提是
a
始终有一个默认构造函数,如果存在这样一个构造函数,它将不会执行耗时、占用内存或破坏性的操作。:)请参阅,谢谢您的链接
isAssignableFrom
是一种更好的方法。但这是我第一眼看到这个问题时的想法。例如,我给出了默认构造函数。OP应该使用类似于
newA(null,null,0,“”)
等的东西。你也可以使用A.class.isAssignableFrom来避免实例化该类。我现在觉得有点愚蠢。。尽管我经常使用instanceof,但我从未想过这一点。无论如何多亏了很多人,这种方法的前提是
a
始终有一个默认构造函数,如果存在这样一个构造函数,它将不会执行耗时、占用内存或破坏性的操作。:)请参阅,谢谢您的链接
isAssignableFrom
是一种更好的方法。但这是我第一眼看到这个问题时的想法。例如,我给出了默认构造函数。OP应该使用类似于
newA(null,null,0,“”)
等的东西。您还可以使用A.class.isAssignableFrom来避免实例化该类。