IntelliJ IDEA中的Java语言级别问题

5

我刚开始用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();});
    }
}
}

这是我到目前为止尝试的内容。我的问题出现在这一行,即“supporter.openPrivate .....”。
我本来以为当我将项目和模块语言级别更改为8时,它就能正常工作,但是它给了我这个错误:
错误:java:错误:不支持发行版本5
如果我不更改语言级别,它会显示:
Lambda表达式在语言级别“5”上不受支持

你使用Maven还是Gradle? - Minn
你是否正在使用不支持Lambda表达式的旧版本Java进行构建? - Ferdz
1个回答

8
Maven 使用的默认 Java 版本是 Java 5(1.5),所以我认为这可能是您的问题。
请确保您拥有正确的 JDK 以使用所需的语言级别 Java 8 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>

检查编译器设置:设置/首选项 >构建、执行、部署 >编译器 >Java编译器 >更改目标字节码版本为1.8以针对该特定模块。


我认为默认的是Java 1.6。 - dan1st
感谢您快速的回答!我现在已经安装了Java JDK 1.8并将其选择,并将你写的代码粘贴到了maven代码中,但我现在遇到了这个错误: 错误:java:javacTask:源发行版8需要目标发行版1.8 - JukingJoker
@JukingJoker 没问题。它解决了你的问题吗? - Dylan
很遗憾,不是我之前所写的那样。 - JukingJoker
抱歉。您是否使用Maven来管理依赖项?如果没有,我将写一个不同的答案。 - Dylan
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接