首页 > 其他分享 >Optional.of() 导致得空指针

Optional.of() 导致得空指针

时间:2024-01-16 21:24:59浏览次数:23  
标签:BigDecimal get getXXXXXX value Optional 得空 指针

//会报空指针,list.get(0).getXXXXXX 返回了null,导致of() 方法抛出空指针
BigDecimal  s = Optional.of(list.get(0).getXXXXXX).orElse(BigDecimal.ZERO);
//正常
BigDecimal  s = Optional.ofNullable(list.get(0).getXXXXXX).orElse(BigDecimal.ZERO);

Optional.of() 源码


public static <T> Optional<T> of(T value) {
    return new Optional<>(value);
}

private Optional(T value) {
    this.value = Objects.requireNonNull(value);
}

public static <T> T requireNonNull(T obj) {
    if (obj == null)
        throw new NullPointerException();
    return obj;
}

https://www.python100.com/html/HUW6895UF7D8.html

标签:BigDecimal,get,getXXXXXX,value,Optional,得空,指针
From: https://www.cnblogs.com/czzz/p/17968570

相关文章

  • Delphi中 调试 指针
             p1.Free;释放堆中数据,最终无内存泄漏,只是加深记忆;有些时候灵活应对;......
  • C语言——函数指针类型转换
    昨天为了避免跨层调用API搞了个回调函数,用了函数指针,因为参数类型的问题总是编译报错,今天就看了两篇博文学习学习,顺便做做笔记。其实正常来讲只要把函数指针的参数个数、类型和返回值这些函数指针的标签或者说是属性写对了的话就不会有社么问题,但我也不知道怎么着就会报......
  • 统计区间(双指针)
    这题求的非空区间可以是整个数组内的任意一个区间,刚开始我是想用一个for和一个whilefor(inti=0;i<n;i++){ l=0,sum=0; while(l<i){ intj=l; for(intk=j;k<i;k++){ sum+=a[k]; if(sum>=k){ s++; break; ) } l++; }}但因为数据太大,......
  • 15指向成员变量和成员方法的指针
    指向成员变量和成员方法的指针指向成员变量的指针classTest{public: intma; staticintmb;};intTest::mb;intmain(){//类对象的成员变量指针不是普通的指针,需要加入类名限定符//类的静态成员变量指针不针对某一个特定对象,使用普通指针 int*p=&Tes......
  • 9类和对象与this指针
    类和对象,this面向对象的四大特性:抽象,封装/隐藏,继承,多态属性一般都是私有的,向外提供公有方法以访问私有属性。类本身不占内存,实例化对象占内存。类体内定义的成员函数默认为内联,体外定义需要加inline修饰。一个类可以定义无数的对象,每一个对象都有自己的成员变量,成员函数是公......
  • 吴师兄学算法day07 双指针 680. 验证回文串 II
    题目:680. 验证回文串II易错点:s[1:3]是左闭右开我的第一次代码:classSolution(object):defvalidPalindrome(self,s):""":types:str:rtype:bool"""isPalindrome=lambdax:x==x[::-1]l......
  • 使用Optional更优雅地处理非空判断
    (一)引言在平常的编码之中,有一个错误总会在你的意料之外出现,那就是空指针异常。空指针的出现也很简单,你得到了一个null对象,调用了一些方法,出现空指针异常。空指针会出现在各种地方,常见的比如Map.get()没有获取到对象就调用对象例的方法,类对象没有获取到就调用类中的方法。空指针......
  • 吴师兄学算法day07 双指针 125. 验证回文串
    题目:125. 验证回文串易错点:isaplha()isdigit()lower()要熟悉,挺有用的。我的代码:classSolution:defisPalindrome(self,s:str)->bool:ans=''foriins:ifi.isalpha()ori.isdigit():ans+=i.lower()#......
  • abc098d<双指针,异或>
    题目D-XorSum2给出n个元素的数组a,求满足条件的子区间个数:数组a子区间元素和与异或和相等。思路和与异或和相同,即没有任何进位,也就是区间中对于范围内每个二进制位,最多出现一次;使用双指针,统计每个二进制位最多出现一次的区间个数即可;总结异或:不进位加法;代码点击......
  • 吴师兄学算法day07 双指针 9. 回文数
    题目:9. 回文数易错点:右指针要记得移动我的代码:classSolution:defisPalindrome(self,x:int)->bool:array=list(str(x))right=len(array)-1forleftinrange(len(array)//2):ifarray[left]==array[right]:......