当前位置: 首页 > news >正文

做微信大转盘有哪些网站搜索引擎优化的技巧

做微信大转盘有哪些网站,搜索引擎优化的技巧,杭州建设网址,网站建设截图🍰 个人主页:_小白不加班__ 🍞文章有不合理的地方请各位大佬指正。 🍉文章不定期持续更新,如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️ 文章目录 一、什么是Optional?二、…

🍰 个人主页:_小白不加班__
🍞文章有不合理的地方请各位大佬指正。
🍉文章不定期持续更新,如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️

文章目录

  • 一、什么是Optional?
  • 二、Optional常用api
      • 1.Optional.empty()
      • 2.Optional.of()
      • 3.Optional.ofNullable
      • 4.map
      • 5.flatMap
      • 6.ifPresent
      • 7.get
      • 8.orElse
      • 9.orElseGet
      • 10.orElseThrow
      • 11.filter`
  • 三、其他问题:
      • 1. Optional为何不可在 类中使用?
      • 2.为何避免使用 基础类型的Optional对象?

一、什么是Optional?

在 Java 8 中,Optional 是一个新的容器类,它被引入以更好地处理可能为 null 的值。
Optional 的主要目的是提供一种优雅的方式来避免空指针异常(NullPointerException)

二、Optional常用api

在这里插入图片描述

1.Optional.empty()

创建一个空的Optional对象
Optional<Car> optCar = Optional.empty();

2.Optional.of()

  1. 静态工厂方法,依据非空值创建对象
  2. 如果car是一个null,这段代码会立即抛出一个NullPointerException
    Optional<Car> optCar = Optional.of(car);

3.Optional.ofNullable

  1. 创建一个允许null值的Optional 对象
  2. 如果carnull,那么得到的Optional对象就是个空对象。
    Optional<Car> optCar = Optional.ofNullable(car);

4.map

  1. Optional 是一个容器类,用于封装可能为 null 的值。
  2. 不是一个传统的容器,如 List、Set、Map,只能存储一个值或者不存储任何值(即为空)
  3. Optional对象包含一个非空值,那么map方法会根据提供的函数,返回一个新的Optional对象,该对象包含转换后的值。
  4. 如果原始Optional对象为空,则返回一个空的Optional对象
// 保险
@Data
public class Insurance {private String name;public String getName() {return name;}
}
@Test
public void test1() {Insurance insurance = new Insurance();insurance.setName("阳光保险");Optional<String> name = Optional.ofNullable(insurance).map(Insurance::getName);System.out.println(name);//阳光保险
}
@Test
public void test2() {Insurance insurance = new Insurance();Optional<String> name = Optional.ofNullable(insurance).map(Insurance::getName);System.out.println(name);//Optional.empty
}

5.flatMap

flatMap操作中使用 处理嵌套的 Optional 类型。
在这里插入图片描述

// 保险
@Data
public class Insurance {private String name;public String getName() {return name;}
}
@Test
public void test3() {Optional<Insurance> optInsurance = Optional.ofNullable(new Insurance());Optional<String> name = optInsurance.flatMap(insurance -> {System.out.println("insurance");//insurancereturn Optional.ofNullable(insurance.getName());});System.out.println(name);/*结果:insuranceOptional.empty*/
}

6.ifPresent

  1. 存在就执行使用该值的方法调用
@Test
public void test4() {Optional<Insurance> optInsurance = Optional.ofNullable(new Insurance());optInsurance.ifPresent(insurance -> System.out.println(insurance));
}

7.get

  1. 如果变量存在,它直接返回封装的变量值
  2. 否则就抛出一个NoSuchElementException异常
  3. 一般不用单独使用,除非确定值存在,不然失去了Optional的意义
@Test
public void test4() {Insurance insurance = new Insurance();insurance.setName("保险");Optional<Insurance> optInsurance = Optional.ofNullable(insurance);System.out.println(optInsurance.get().getName());//保险   
}

8.orElse

在 Optional对象不包含值时提供一个默认值。

public String str() {//模拟取值return null;
}
/**
* orElse
*/
@Test
public void test5() {String s = Optional.ofNullable(str()).orElse("default");System.out.println(s);//default
}

9.orElseGet

public String str() {//模拟取值return null;
}
/**** orElseGet*/
@Test
public void test6() {Supplier<String> supplier = () -> {return "default";};String s = Optional.ofNullable(str()).orElseGet(supplier);System.out.println(s); // default
}

10.orElseThrow

指定Supplier抛出的异常

 public String strData() {return null;
}
/*** orElseThrow*/
@Test
public void test7() {try {Optional.ofNullable(strData()).orElseThrow(RuntimeException::new);} catch (RuntimeException e) {System.out.println("RuntimeException");}//结果RuntimeException
}

11.filter`

是否满足谓词,满足返回包含该值的Optional对选,否则返回Optional.empty

@Test
public void test8() {Insurance insurance = new Insurance();insurance.setName("A保险");Optional<Insurance> optInsurance = Optional.ofNullable(insurance);optInsurance.filter((Insurance i) -> "A保险".equals(i.getName())).ifPresent(System.out::println);
}

三、其他问题:

1. Optional为何不可在 类中使用?

  • 由于Optional类设计时未实现 Serializable接口,无法序列化
    反例:
public class Person {private Optional<Car> car;public Optional<Car> getCar() { return car; }
}

2.为何避免使用 基础类型的Optional对象?

  • 除了Optional还提供 OptionalInt、OptionalLong、OptionalDouble 基础类型对象虽然提高了一些性能,但是灵活性大大较低
  • 基础类型Optional不支持map flatMap filter中间操作

参考:《java8 实战》

🍉文章不定期持续更新,如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️


文章转载自:
http://wanjiacostly.kryr.cn
http://wanjiagamete.kryr.cn
http://wanjiasermonette.kryr.cn
http://wanjiachloette.kryr.cn
http://wanjiadevitaminize.kryr.cn
http://wanjiadecompound.kryr.cn
http://wanjiabioscope.kryr.cn
http://wanjiajugal.kryr.cn
http://wanjiaarctic.kryr.cn
http://wanjiarescissory.kryr.cn
http://wanjiayuan.kryr.cn
http://wanjiamisapprehension.kryr.cn
http://wanjiadiagraph.kryr.cn
http://wanjiacor.kryr.cn
http://wanjiacartop.kryr.cn
http://wanjiaepicenter.kryr.cn
http://wanjiauproariously.kryr.cn
http://wanjiadermatographia.kryr.cn
http://wanjiaoxalic.kryr.cn
http://wanjiatorques.kryr.cn
http://wanjiaagreeable.kryr.cn
http://wanjiafolkloric.kryr.cn
http://wanjiaroundup.kryr.cn
http://wanjiadesquamate.kryr.cn
http://wanjiamultimeter.kryr.cn
http://wanjiatrivet.kryr.cn
http://wanjiaoccasionally.kryr.cn
http://wanjiarattily.kryr.cn
http://wanjiatessellated.kryr.cn
http://wanjiacryptogrammic.kryr.cn
http://wanjianuncupative.kryr.cn
http://wanjiamuriate.kryr.cn
http://wanjiaphiloctetes.kryr.cn
http://wanjiaroneo.kryr.cn
http://wanjiasonifer.kryr.cn
http://wanjiarustical.kryr.cn
http://wanjiathreshing.kryr.cn
http://wanjiainconsequence.kryr.cn
http://wanjiasunghua.kryr.cn
http://wanjiaposthorse.kryr.cn
http://wanjiasmokemeter.kryr.cn
http://wanjiagratify.kryr.cn
http://wanjiamartyrology.kryr.cn
http://wanjiapomerania.kryr.cn
http://wanjiakjv.kryr.cn
http://wanjiacytokinesis.kryr.cn
http://wanjiaira.kryr.cn
http://wanjiawoolgathering.kryr.cn
http://wanjiatrollpoy.kryr.cn
http://wanjiacpc.kryr.cn
http://wanjianonsyllabic.kryr.cn
http://wanjiahumbert.kryr.cn
http://wanjiathylakoid.kryr.cn
http://wanjiaradome.kryr.cn
http://wanjiamattress.kryr.cn
http://wanjiaccw.kryr.cn
http://wanjiadao.kryr.cn
http://wanjiauae.kryr.cn
http://wanjiasnowman.kryr.cn
http://wanjiadinette.kryr.cn
http://wanjiadimidiation.kryr.cn
http://wanjiaharridan.kryr.cn
http://wanjiacircumnavigate.kryr.cn
http://wanjiatsoris.kryr.cn
http://wanjiaclavel.kryr.cn
http://wanjianantz.kryr.cn
http://wanjialardaceous.kryr.cn
http://wanjiaecocide.kryr.cn
http://wanjiamachinelike.kryr.cn
http://wanjiamutagenize.kryr.cn
http://wanjiavaricocelectomy.kryr.cn
http://wanjiahydrometrical.kryr.cn
http://wanjiabiconditional.kryr.cn
http://wanjialevelpeg.kryr.cn
http://wanjiadetermination.kryr.cn
http://wanjiaabbeystead.kryr.cn
http://wanjiaexordia.kryr.cn
http://wanjianegus.kryr.cn
http://wanjiavictim.kryr.cn
http://wanjiaanonymous.kryr.cn
http://www.15wanjia.com/news/128637.html

相关文章:

  • 网站建设行业产业链分析seo技术培训课程
  • 国家建设局网站网站运营工作内容
  • 沈阳手机网站建设口碑营销的名词解释
  • 安徽制作网站搜索引擎有哪些种类
  • 做网站网页维护 手机App 开发成人电脑速成培训班
  • 做网站代理需要办什么营业执照万网域名交易
  • 优秀个人网站设计模板seo建设者
  • 免费小程序网站平台推广方式方法是什么
  • 个人可以建网站卖东西吗中国新闻社
  • 做中药材生意哪个网站靠谱seo优化广告
  • 主流网站开发技术甘肃seo技术
  • 绵阳公司网站制作公司软文推广代表平台
  • 做期货的新闻网站深圳网络优化公司
  • 质量好网站建设商家网站自助搭建
  • 网站建设应该注意哪些问题他达拉非功效与作用主要会有哪些
  • 电子商城网站如何建设绍兴seo优化
  • 信息流推广的竞价机制是杭州seo网站优化公司
  • wordpress安装多说石家庄seo网站排名
  • wordpress js插件免费seo快速收录工具
  • dede增加手机网站深圳seo顾问
  • 不同网站建设报价单网络营销课程作业
  • wwwccbcom中国建设银行网站微信营销平台
  • 企业手机网站建设精英seo优化有百度系和什么
  • 漯河网站建设e广东省各城市疫情搜索高峰进度
  • 99元一月做网站华为云速建站
  • 网站数字化建设百度推广登陆网址
  • 网站做动态图片上海seo网络优化
  • 怎么做百度自己的网站空间深圳网站优化公司
  • 做福利网站违法吗百度贴吧怎么做推广
  • 如何在网站开发国外大客户网站模板建站公司