【问题标题】:How to to make asList and forEach and logger.info work? [duplicate]如何使 asList 和 forEach 以及 logger.info 工作? [复制]
【发布时间】:2023-01-03 13:34:11
【问题描述】:

我无法使我的部分代码正常工作。错误显示“无法解析符号‘asList’和‘无法解析符号‘info’”

我发现的一种解决方案是将这段代码放入

public static void main(String[] args) {

它会起作用,但我不知道为什么会这样。

package com.solvd.army.lambda;

import com.solvd.army.Runner; 
import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger;

import java.util.Arrays;

public class PrintRanks {
    private static Logger logger = LogManager.getLogger(Runner.class.getName());
    String ranks[] = {"General", "Colonel", "General", "IntelligenceTeam", "Lieutenant", "Major", "Doctor",
            "Nurse", "Operator", "Sergeant", "Soldiers"};
    Arrays.asList(ranks).forEach((ranks) -> logger.info(ranks)); 
}

【问题讨论】:

  • 什么是“遇到麻烦“意思是?你有编译错误吗?如果是这样:请edit帖子,添加编译器错误并突出显示导致编译错误的代码行。它会抛出异常吗?如果是这样:请edit帖子,添加堆栈跟踪并突出显示导致异常的代码行。您是否观察到意外行为?如果是这样:请edit帖子,添加minimal reproducible example,正如我们预期和观察到的输出。
  • Arrays.asList(ranks).forEach((ranks) -> logger.info(ranks))" - 此语句在类级别上。Java 不允许在类级别上执行语句(字段定义除外)。语句必须位于方法或静态初始化程序块内。

标签: java


【解决方案1】:

你的陈述应该在一个方法中。

例如

public void display(){
   Arrays.asList(this.ranks).forEach((ranks) -> logger.info(ranks))
}

然后你可以调用这个方法(可能在 main 方法里面?)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多