我试图通过反射对类的接口(interface)执行查询,但是方法Type.GetInterfaces()也返回所有继承的接口(interface)。等等publicclassTest:ITest{}publicinterfaceITest:ITesting{}代码typeof(Test).GetInterfaces();将返回一个包含ITest和ITesting的Type[],因为我只想要ITest,是否有另一种方法允许您指定继承?谢谢,亚历克斯。编辑:从下面的答案中我收集到了这一点,Typet;t.GetInterfaces().Where(i=>!t.GetInterfaces()
在.Net中使用反射,有什么区别:if(foo.IsAssignableFrom(typeof(IBar)))和if(foo.GetInterface(typeof(IBar).FullName)!=null)哪个更合适,为什么?什么时候一个或另一个会失败? 最佳答案 如果您只想查看一个类型是否实现了给定的接口(interface),两者都可以,尽管GetInterface()可能更快,因为IsAssignableFrom()比GetInterface()进行更多的内部检查。检查Type.GetInterfaces()的结果可能会更
示例:Listlist=newArrayList();//Thiswouldgivemetheclassnameforthelistreferencevariable.list.getClass().getSimpleName();我想从list引用变量中获取接口(interface)名称。有什么办法可以做到这一点吗? 最佳答案 使用反射你可以调用Class.getInterfaces()返回您的类实现的ArrayofInterfaces的方法。list.getClass().getInterfaces()[0];只得到名字list
(为了澄清问题,'T'指的是类中声明的类型参数)举个例子,请查看以下应用程序:publicclassTestClass{interfaceInterfaceA{}interfaceInterfaceB{}interfaceInterfaceC{}classClassAimplementsInterfaceA,InterfaceB,InterfaceC{}publicstaticvoidmain(String[]args){ClasssuperClass1=ClassA.class;Classsuperclass2=InterfaceA.class;Classsuperclass3=In