程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

javac:不兼容的类型:Mono<Object> 无法转换

发布于2021-08-06 00:21     阅读(230)     评论(0)     点赞(1)     收藏(2)


谁能解释为什么该mono1()方法在 Eclipse 中没有显示错误,并且在 Eclipse 中运行,但不能使用 Maven 或javac. 为什么该mono2()方法在 Eclipse 和 Maven/ 中都可以javac

import java.util.function.Function;

import lombok.AllArgsConstructor;
import lombok.Data;
import reactor.core.publisher.Mono;

public class IncompatibleTypes {
    public static void main(String[] args) {
        mono1().doOnNext(a -> System.out.println("mono1: " + a)).subscribe();
        mono2().doOnNext(a -> System.out.println("mono2: " + a)).subscribe();
    }

    static Mono<A> mono1() {
        return Mono.just("mono1")
                .flatMap(flatMapper(A.class))
                .doOnError(System.err::println); // Maven/javac errors on this line
                                                 // Eclipse is fine with it
    }

    static Mono<A> mono2() {
        Mono<A> mono = Mono.just("mono2")
                .flatMap(flatMapper(A.class)); // compiles fine in Eclipse, Maven, javac
        mono = mono.doOnError(System.err::println);
        return mono;
    }

    static <R> Function<? super String, ? extends Mono<? extends R>> flatMapper(Class<R> clazz) {
        return (str) -> {
            A a = new A(str);
            return Mono.just((R) a);
        };
    }

    @Data
    @AllArgsConstructor
    static class A {
        private String name;
    }
}

这是来自 Maven 和/或的错误javac

IncompatibleTypes.java:16: error: incompatible types: Mono<Object> cannot be converted to Mono<A>
                .doOnError(System.err::println);

doOnError()应该返回Mono<T>T而不应该Object在我的例子中。

Eclipse 中没有错误,当我将鼠标悬停doOnError在 Eclipse 上时,它显示了预期的类型Mono<A>(而不是Mono<Object>):

在此处输入图片说明

  • Eclipse 版本:Spring 工具套件版本:3.9.5.RELEASE。
  • Maven 版本:3.5.0
  • Maven 编译器插件:3.7.0
  • javac 版本:1.8.0_171

解决方案


暂无回答



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/254877/638f85b787a0e4e0b349/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0
收藏该文
已收藏

评论内容:(最多支持255个字符)