IntelliJ IDEA中的Java语言级别问题

Juk*_*ker 4 java discord-jda

我只是开始用IntelliJ IDEA在Java中用一些简单的函数来编写Discord Bot。现在我确实有一个问题,我必须为特定功能使用语言级别8,但是当我这样做时,它给我一个错误,以前没有任何工作现在可以正常工作。

码:

package main;
import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.entities.Member;
import net.dv8tion.jda.core.events.guild.voice.GuildVoiceJoinEvent;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;
import net.dv8tion.jda.core.entities.Role;
import net.dv8tion.jda.core.entities.User;
import java.util.List;
import javax.security.auth.login.LoginException;

public class Main extends ListenerAdapter {

public static void main(String[] args) throws LoginException {
    JDABuilder builder = new JDABuilder(AccountType.BOT);

    String token = "Token of bot which i dont want to show here";

    builder.setToken(token);

    builder.addEventListener(new main.Main());

    builder.buildAsync();
}

@Override
public void onMessageReceived(MessageReceivedEvent event) {
    System.out.println("We received a message from " +
            event.getAuthor().getName()+": "+ event.getMessage().getContentDisplay());

    if(event.getMessage().getContentRaw().equals("!ping"))
    {
        event.getChannel().sendMessage("Pong!").queue();
    }
}

@Override
public void onGuildVoiceJoin(GuildVoiceJoinEvent event) {
    Role role = event.getGuild().getRoleById("575318189467107328");

    List<Member> list = event.getGuild().getMembersWithRoles(role);

    for (int i = 0; i < list.size(); i++) {
        User supporter = list.get(i).getUser();

        supporter.openPrivateChannel().queue((channel)->{channel.sendMessage("Jemand braucht Hilfe").queue();});
    }
}
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直试图这样做。我的问题出现在显示“ supporter.openPrivate .....”的行中。

我预计当我将项目和模块语言级别更改为8时它将起作用,但是它给了我这个错误:错误:java:错误:不支持发行版本5

当我不更改语言级别时,它会这样说:语言级别'5'不支持Lambda表达式

Dyl*_*lan 5

Maven使用的默认Java版本是Java 5(1.5),所以我认为这是您的问题。

确保您具有尝试使用Java 8 JDK的语言级别的正确JDK。设置环境变量,并按照指南进行安装。

之后,在您的Maven或Gradle设置文件(pom.xml或build.gradle)中,如下更改Java发布版本。

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

检查您的编译器设置:设置/首选项>生成,执行,部署>编译器> Java编译器>将该特定模块的目标字节码版本更改为1.8