有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何检索实现自定义接口的所有类?

我想得到实现IFeature接口的所有类。Java引用似乎是一种可能的解决方案,但它没有按照我希望的方式工作

IFeature feature = new Landing();
Class<?>[] cls = Character.class.getInterfaces();
for(Class<?> c : cls ){
    System.out.println(c.toString());
}

输出

run:

interface java.io.Serializable

interface java.lang.Comparable

BUILD SUCCESSFUL (total time: 0 seconds)

我的界面

public interface IFeature {
    public abstract void update(HashMap<QueueIdentifier, Queue<Measurement>> messageMap);
    public abstract List<QueueIdentifier> getQIdList();
    public abstract int getCountSamples();
}

共 (1) 个答案

  1. # 1 楼答案

    解决方案是来自ApacheATN库的ClassPathLoader。 这是我的代码

    ClassPathLoader cpl = new ClassPathLoader(".");
        try {
        Hashtable ht = cpl.getClasses();
        Set s = ht.keySet();
        Iterator iter = s.iterator();
        String fullName = null;
            while(iter.hasNext()) {
                try {
                fullName = (String) iter.next();
                Class cls = Class.forName(fullName);
                Class[] interfaces = cls.getInterfaces();
                for(int i = 0; i < interfaces.length; i++) {
                if(interfaces[i].getName().equals("IMyObserver.IFeature")) {
    
                Object o = cls.newInstance();
                }
            }