IntelliJ IDEA中的Java语言级别问题

时间:2019-05-07 15:20:05

标签: 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();});
    }
}
}

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

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

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

1 个答案:

答案 0 :(得分:1)

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>

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