gpt4 book ai didi

java - 如何检查 Class.forName() 是否实现了特定接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 11:19:47 27 4
gpt4 key购买 nike

我正在使用字符串获取类名并使用 Class.forName() 获取类。

现在我想知道这个类是否是另一个类的实例(在本例中是 java.lang.AutoCloseable)。

我的代码是

Class c = Class.forName("java.io.FileInputStream");
if(c instanceof java.lang.AutoCloseable){
//detected that FileInputStream implements AutoCloseable
}

但是好像不行。我也试过 c.newInstance() 和 c.getClass().newInstance() 但既没有工作也没有抛出异常。请帮忙!

最佳答案

    Class c = Class.forName("java.io.FileInputStream");
if(c instanceof java.lang.AutoCloseable){
//detected that FileInputStream implements AutoCloseable
}

Class c = Class.forName("java.io.FileInputStream");
if(java.lang.AutoCloseable.class.isAssignableFrom(c)){
//detected that FileInputStream implements AutoCloseable
}

关于java - 如何检查 Class.forName() 是否实现了特定接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23074292/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com