相关疑难解决方法(0)

什么是NullPointerException,我该如何解决?

什么是空指针异常(java.lang.NullPointerException)以及它们的原因是什么?

可以使用哪些方法/工具来确定原因,以便停止异常导致程序过早终止?

java nullpointerexception

210
推荐指数
12
解决办法
255万
查看次数

Java条件运算符?:结果类型

我对条件运算符有点疑惑.请考虑以下两行:

Float f1 = false? 1.0f: null;
Float f2 = false? 1.0f: false? 1.0f: null;
Run Code Online (Sandbox Code Playgroud)

为什么f1变为null而第二个语句抛出NullPointerException?

Langspec-3.0 para 15.25 sais:

否则,第二和第三操作数分别是S1和S2类型.设T1是将拳击转换应用于S1所产生的类型,让T2为应用到S2的装箱转换所产生的类型.条件表达式的类型是将捕获转换(第5.1.10节)应用于lub(T1,T2)(第15.12.2.7节)的结果.

所以对于false?1.0f:nullT1是Float而T2是null类型.但结果是lub(T1,T2)什么?第15.12.2.7段只是有点太多了......

顺便说一句,我在Windows上使用1.6.0_18.

PS:我知道Float f2 = false? (Float) 1.0f: false? (Float) 1.0f: null;不会抛出NPE.

java type-conversion nullpointerexception conditional-operator

36
推荐指数
1
解决办法
1万
查看次数

在 JDK 11 中用方法引用替换 lambda 时,类 String 中的方法无法应用于给定类型

我面临一个奇怪的问题

import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import java.util.Arrays;
import java.util.Collection;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import static org.junit.jupiter.api.Assertions.assertEquals;

/**
 * Created by mklueh on 13/09/2022
 */
public class Reproducer {

    private static final String COMMA_SEPARATED_STRING = "2020-05-09,hello ,10     ,11.345 ,true    ,1000000000000";

    /**
     * Not working
     */
    @Nested
    public class WithReturn {

        public String withReturn(Stream<String> stream, String delimiter, Function<? super String, String[]> tokenizer) {
            return stream.map(s -> {
                             return Arrays.stream(tokenizer != null ? tokenizer.apply(s) : s.split(delimiter))
                                          .map(String::strip) //Comment out to make …
Run Code Online (Sandbox Code Playgroud)

java lambda java-stream method-reference

4
推荐指数
1
解决办法
348
查看次数

带有 Optional 的三元运算符中不需要的空指针异常

据我了解,以下代码不应抛出,Null Pointer exception因为我正在安全地使用 Optional 接口。

但是,当我运行此代码时,它会抛出NPE.

public class Test {
        public static void main(String[] args) {
            final Integer inte = false ? 0 : Optional.ofNullable((Integer) null).orElse(null);
         }
    }
Run Code Online (Sandbox Code Playgroud)

如果我在代码中的某个地方弄错了,请告诉我并帮助我纠正相同的错误。

java optional java-8

-3
推荐指数
1
解决办法
199
查看次数