小编Pra*_*eep的帖子

java 14 nullpointerexception 没有详细信息

Java 14 有许多新特性。其中之一是在 NullPointerException 中显示详细消息。我安装了 Java 14 并尝试在类下编译和运行,但没有收到任何详细消息。我错过了什么吗?请帮忙。

~/code/demo/temp$ java -version
openjdk version "14" 2020-03-17
OpenJDK Runtime Environment AdoptOpenJDK (build 14+36)
Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.19.0, JRE 14 Mac OS X amd64-64-Bit Compressed          References 20200313_47 (JIT enabled, AOT enabled)
OpenJ9   - 0133ba037
OMR      - 1c04e0ef9
JCL      - a73be60649 based on jdk-14+36)

~/code/demo/temp$ cat Hello.java
public class Hello {
  public static void main(String args[]) {
    String a = null;
    System.out.println(a.length());
  }
}

~/code/demo/temp$ javac Hello.java
~/code/demo/temp$ java -XX:+ShowCodeDetailsInExceptionMessages Hello
Exception …
Run Code Online (Sandbox Code Playgroud)

java openj9 java-14

11
推荐指数
2
解决办法
1327
查看次数

Java List of()静态方法

我正在执行下面的代码片段

System.out.println(List.of(1, 2).getClass());  
System.out.println(List.of(1, 2, 3).getClass());
Run Code Online (Sandbox Code Playgroud)

这段代码的输出是;

class java.util.ImmutableCollections$List2  
class java.util.ImmutableCollections$ListN
Run Code Online (Sandbox Code Playgroud)

我期待java.util.ImmutableCollections$List3作为第二个语句的输出,因为有一个of()方法需要三个参数,为什么java创建ImmutableCollections$ListN但不是ImmutableCollections$List3

编辑:这是Java-9问题.在List接口中总共有11个重载的()方法,每个方法从0到10采用可变数量的参数,第11个采用varargs来处理N列表.所以我期待前10个重载方法的List0到List10实现,但它返回带有三个参数的ListN.是的,这是实施细节,但只是想了解更多相关信息.

java collections java-9

2
推荐指数
2
解决办法
1001
查看次数

Micronaut 依赖注入不适用于 picocli 功能

我使用以下命令创建了一个 micronaut 项目

mn create-cli-app micronaut-cli
Run Code Online (Sandbox Code Playgroud)

在项目中,我创建了一个 @Singleton 类,并将它注入到我的 Command 类中,但注入不起作用,因为对象始终为空。

我的单身课程:

@Singleton
public class ConverterService {
    public String service(){return "good service";}
}
Run Code Online (Sandbox Code Playgroud)

我的命令类:

@Command(name = "mini-java-util", description = "...",
    mixinStandardHelpOptions = true)
public class MiniJavaUtilCommand implements Runnable {

    @Inject ConverterService converterService;
    @Option(names = {"-v", "--verbose"}, description = "...")
boolean verbose;

    public static void main(String[] args) throws Exception {
        PicocliRunner.run(MiniJavaUtilCommand.class, args);
    }

    public void run() {
        // business logic here
        if (verbose) {
            System.out.println("converterService :" + converterService);
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

java micronaut

0
推荐指数
1
解决办法
1302
查看次数

标签 统计

java ×3

collections ×1

java-14 ×1

java-9 ×1

micronaut ×1

openj9 ×1