Java-依赖于通用接口的通用类型参数

时间:2019-10-17 10:01:14

标签: java generics

我正在尝试进行编译:

package main;

import java.util.Iterator;

public class Example {

public <I extends BaseInterface, T extends BaseClass & I> Iterator<I> getInterfaceIterator(Iterator<T> iterator) {
    return new Iterator<I>() {
        public boolean hasNext() {
            return iterator.hasNext();
        }

        public I next() {
            T element = iterator.next();
            return func(element);
        }

        public void remove() {
            iterator.remove();
        }
    };
}

    private <T extends BaseClass> T func(T element) {
        return element;
    }

    public static class BaseClass implements BaseInterface {

    }

    public static interface BaseInterface {

    }

    public static class ImplementingClass extends BaseClass implements ImplementingInterface {

    }

    public static interface ImplementingInterface extends BaseInterface {

    }
}

但是,我收到此编译错误:

错误:(7,60)java:意外类型   必填:类   找到:类型参数I

错误:(15、28)java:不兼容的类型:推断变量T具有不兼容的上限I,com.stampli.server.commons.communication.Example.BaseClass

0 个答案:

没有答案