Java 为什么希罗库给我这个;“不兼容类型”;错误?

Java 为什么希罗库给我这个;“不兼容类型”;错误?,java,heroku,buffer,bytebuffer,discord-jda,Java,Heroku,Buffer,Bytebuffer,Discord Jda,我正试图在Heroku.com上部署我的discord机器人,但是我收到了一个奇怪的错误。。。 下面是引发错误的类的代码: package main.Events.lavaplayer; import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; import com.sedmelluq.discord.lavaplayer.track.playback.MutableAudioFrame; import net.dv8tion.jd

我正试图在Heroku.com上部署我的discord机器人,但是我收到了一个奇怪的错误。。。 下面是引发错误的类的代码:

package main.Events.lavaplayer;

import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
import com.sedmelluq.discord.lavaplayer.track.playback.MutableAudioFrame;
import net.dv8tion.jda.api.audio.AudioSendHandler;
import org.jetbrains.annotations.Nullable;

import java.nio.ByteBuffer;

public class AudioPlayerSendHandler implements AudioSendHandler {
    private final AudioPlayer audioPlayer;
    private final ByteBuffer buffer;
    private final MutableAudioFrame frame;

    public AudioPlayerSendHandler(AudioPlayer audioPlayer) {
        this.audioPlayer = audioPlayer;
        this.buffer = ByteBuffer.allocate(1024);
        this.frame = new MutableAudioFrame();
        this.frame.setBuffer(buffer);
    }

    @Override
    public boolean canProvide() {
        return this.audioPlayer.provide(this.frame);
    }

    @Nullable
    @Override
    public ByteBuffer provide20MsAudio() {
        return this.buffer.flip();
    }

    @Override
    public boolean isOpus() {
        return true;
    }
}

这段代码在使用Intellij编译时不会给我带来任何问题,但当我尝试将其部署到Heroku时,他们会给我以下错误:

错误:不兼容的类型:java.nio.Buffer无法转换为@org.jetbrains.annotations.Nullable java.nio.ByteBuffer 返回这个.buffer.flip()

返回
缓冲区
而不是ByteBuffer,因此需要强制转换

public ByteBuffer provide20MsAudio() {
    return (ByteBuffer) buffer.flip();
}

您不能用不太具体的类型覆盖返回类型。谢谢,这很有效!尽管我很好奇,为什么Intellij编译器没有将此标记为错误,并将所有内容都编译得很好?Eclipse(它有自己的编译器)抱怨道。IntelliJ可能对返回类型没有那么严格。。。