如何找到接口类的实现类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何找到接口类的实现类相关的知识,希望对你有一定的参考价值。

如题,怎样找到一个接口类的实现方法,例如,有一个接口类:userIface,我在userSexImpl,userNameImpl,userInfoImpl都实现了userIface,问如何知道这个接口被这几个或者更多的类实现了呢.有什么工具,插件....可以定位的

参考技术A 告诉你一个Eclipse中的快捷键
双击选中该userIface类中的任意一个接口方法,Ctr+G
列出所有实现该接口的方法!
试试,不行的话找我!本回答被提问者采纳
参考技术B 没有这种方法,如果是一些开源的软件,那么通过明明的规则或许能够看出来
比如XXXIMPL应该就是实现类了
参考技术C 没有这样的工具。
如果是java自身的接口的话。可以在它的APi中看到。
如果是你自己编写的接口话。自己应该清楚(怕忘记就自己在接口上用用注释注明)。
参考技术D 貌似没有,也许有,可能我还没有接触到过 第5个回答  2007-12-13 么有

如何测试一个类是不是实现了另一个类的所有接口?

【中文标题】如何测试一个类是不是实现了另一个类的所有接口?【英文标题】:How can you test if one class implements all the interfaces of another?如何测试一个类是否实现了另一个类的所有接口? 【发布时间】:2015-08-19 13:44:48 【问题描述】:

我正在使用 C# 和 Unity。

我有一些作为组件添加到其他类的类,其中一些组件相互依赖。我希望找到一种方法来遍历组件的所有接口,并测试它被添加到的类是否也实现了这些接口。

一个例子:

public class Entity : MonoBehaviour, IEntity, IUpgrades, ITestInterface1

    public T AddEntityComponent<T>() where T : MonoBehaviour, IComponent
    
        // I would hope to run the test here:
        // Ideally the test would return true 
        // for ComponentA and false for ComponentB
        T thisComponent = gameObject.GetOrAddComponent<T>();
        return thisComponent;
    


public class ComponentA : MonoBehaviour, IComponent, ITestInterface1



public class ComponentB : MonoBehaviour, IComponent, ITestInterface2


更新:根据 Marc Cals 的建议,我添加了如下代码:

public T AddEntityComponent<T>() where T : MonoBehaviour, IComponent

    Type[] entityTypes = this.GetType().GetInterfaces();
    Type[] componentTypes = typeof(T).GetInterfaces();

    List<Type> entityTypeList = new List<Type>();
    entityTypeList.AddRange(entityTypes);

    foreach (Type interfacetype in componentTypes)
    
        if (entityTypeList.Contains(interfacetype))
        
            continue;
        
        else
        
            return null;
        
    
    T thisComponent = gameObject.GetOrAddComponent<T>();
    return thisComponent;

由于我的项目状态混乱,我还不能完全测试它,但它看起来应该可以满足我的需要。

【问题讨论】:

【参考方案1】:

你可以使用Type.GetInterfaces()获取你的对象的接口,然后比较两者。

【讨论】:

以上是关于如何找到接口类的实现类的主要内容,如果未能解决你的问题,请参考以下文章

如何测试一个类是不是实现了另一个类的所有接口?

JAVA框架如何实现调用接口的实现类的呢?例实现httpsessionlistener接口类被调。

springboot中如何注入一个多个实现类service接口

java 当一个接口被多个类继承时 如何知道是调用的哪个类的实现

如何把一个接口的所有实现类反射出来?

如何在eclipse中看哪个类继承某个接口