方法级别的泛型,如果在实现类中确定下来?

作者站长头像
站长
· 阅读数 16

现在有这样一个接口。

    interface Functor<T,F extends Functor<?,?>> {
        <R> F map(Function<T,R> f);
    }

我想在实现类中确定R的类型,比如规定R必须为Boolean,我该如何实现呢?

回复
1个回答
avatar
test
2024-07-18

R放到类上

    interface Functor<T, F extends Functor<?, ?, ?>, R> {
        F map(Function<T, R> f);
    }

    static class FunctorImpl<T> implements Functor<T, FunctorImpl<T>, Boolean> {
        @Override
        public FunctorImpl<T> map(Function<T, Boolean> f) {
            return null;
        }
    }
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容