通过Class.forName()获得一个Class,如何判断它是否实现了某个接口?

xiaoge22275 2009-07-04 09:01:28
由于不确定这个类是否有不带参数的构造函数,所以不能用classz.newInstance()来实例化,然后再用instanceof来判断是否等于于某个接口类。。。有什么办法吗?
...全文
495 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoge22275 2009-07-04
  • 打赏
  • 举报
回复
谢谢!我刚才还找到一个方法:
classz.getInterfaces(),然后历遍判断。不过一楼的方法更好,很多方法不看API真是不知道有呀。
邵钏 2009-07-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wcwtitxu 的回复:]
Java codeClass<?>theClass=Class.forName("...");if(MyInterface.class.isAssignableFrom(theClass)) {//theClass 实现了 MyInterface//...}else{//theClass 没有实现 MyInterface//...}
[/Quote]

这个方法好
sangshusen_1988 2009-07-04
  • 打赏
  • 举报
回复
1楼正解
邵钏 2009-07-04
  • 打赏
  • 举报
回复
getGenericInterfaces()

然后做遍历
wcwtitxu 2009-07-04
  • 打赏
  • 举报
回复

Class<?> theClass = Class.forName("...");
if (MyInterface.class.isAssignableFrom(theClass)) {
// theClass 实现了 MyInterface
// ...
} else {
// theClass 没有实现 MyInterface
// ...
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧