我有一个Class
对象。我想确定Class
对象表示的类型是否实现了特定的接口。我想知道这是如何实现的?
我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将实现接口的类对象添加到映射中。问题在于isInstance()
将对象作为参数。我无法实例化接口。所以我有点不知所措。有什么想法吗?
Class[] classes = ClassUtils.getClasses(handlersPackage);
for(Class clazz : classes)
{
if(clazz.isInstance(/*Some object*/)) //Need something in this if statement
{
retVal.put(clazz.getSimpleName(), clazz);
}
}
您还可以设置实例添加“.class”
Class[] classes = ClassUtils.getClasses(handlersPackage);
for(Class clazz : classes)
{
if(Interface.class.isAssignableFrom(clazz))
{
retVal.put(clazz.getSimpleName(), clazz);
}
}
您可以使用下面的函数获取所有实现的接口
Class[] intfs = clazz.getInterfaces();
您应该使用isAssignableFrom
:
if (YourInterface.class.isAssignableFrom(clazz)) {
...
}
问题内容: 我有一个对象。我想确定对象表示的类型是否实现特定的接口。我想知道如何实现? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将添加实现接口的Class对象添加到我的地图。问题是将一个对象作为参数。我无法实例化接口。所以我对此感到茫然。有任何想法吗? 问题答案: 您应该使用:
我试图使用反射来确定传入类是否实现了接口: 这是确定这一点的最佳/最有效的方法吗?我还看到一个
本文向大家介绍我们是否必须在实现Java接口的类中实现所有方法?,包括了我们是否必须在实现Java接口的类中实现所有方法?的使用技巧和注意事项,需要的朋友参考一下 是的,必须在实现接口的类中实现所有方法,直到并且除非该类被声明为抽象类。 只有两个选择- 实现接口定义的每个方法。 将该类声明为抽象类,结果迫使您在创建任何对象之前先对该类进行子类化(并实现缺少的方法)。 类不需要在接口中实现所有方法的
众所周知,Java8已经向Java开发人员介绍了函数式编程。 诸如比较器、可运行、可调用等接口都是功能性的。 定义如下:函数接口是只有一个抽象方法的接口。 但例如,同一接口的比较器有多个抽象方法: 那么,对于如何确定接口是否具有功能性,以便将其用作lambda表达式或方法引用的赋值目标,是否有任何严格的规则?
问题内容: 在C#中,如果有两个具有相同方法的基本接口(例如F()),则可以使用显式实现来执行不同的impl。对于F()。这使您可以不同地对待与当前视图相对应的对象:作为IMyInterface1或IMyInterface2。这在Java中可行吗? 问题答案: 不,没有像Java中C#的显式接口实现那样的东西。 从好的方面来说,Java具有协变量返回类型,因此,如果您想提供比接口指定的类型更强的实
我在TypeScript中使用一个接口来定义一个函数,该函数仅在扩展基类的一些类上可用。这是我到目前为止的代码的简化版本: 现在,问题是我会添加更多的“行走”动物,这样移动动物的功能就会变得太大而无法控制。我想做的事情是这样的: 但是,“implements”检查不起作用,在使用接口时,我找不到与“instanceof”等效的。在Java中,“instanceof”的使用似乎可以在这里使用,但Ty