技术训练营——第五周思想报告

【第 5 周讨论主题:Java 基本编程语法】
1.写几行你觉得能代表你个人技术标签的 Java 代码

TridentTopology topology = new TridentTopology();
Stream stream = topology.newStream("spout", spout);
EsConfig esConfig = new EsConfig("http://localhost:9300");
Fields esFields = new Fields("index", "type", "source");
EsTupleMapper tupleMapper = EsTestUtil.generateDefaultTupleMapper();
StateFactory factory = new EsStateFactory(esConfig, tupleMapper);
TridentState state = stream.partitionPersist(factory,esFields,new EsUpdater(),new Fields());

2.如何解决 if-else 多层嵌套的问题。
首先,要梳理一下代码业务,将业务分层,把接口分为外部和内部接口,所有空值判断放在外部接口完成;而内部接口传入的变量由外部接口保证不为空,从而减少空值判断

其次,利用多态,把业务判断消除,各子类分别关注自己的实现,并实现子类的创建方法,避免用户了解过多的类。

然后。可以考虑把分支状态信息预先缓存在HashMap里,直接get获取具体值,消除分支。

3.switch 有哪些奇葩的脾气?
switch中是不能写变量的,只能写常量,但不支持boolean和long类型,支持枚举类型和字符串类型。

要注意避免数据穿透的问题,break一定要记得添加在case条件中

default便于后续补充你没有想到的逻辑,因此如果要用switch一定要加default条件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,881评论 2 9
  • 第01章 JAVA简介第02章 基础语法第02章 递归补充第03章 面向对象第04章 异常处理第05章 数组第06...
    顺毛阅读 528评论 0 1
  • 第一章:Java程序设计概述 Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能...
    loneyzhou阅读 1,290评论 1 7
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,683评论 1 114
  • 鹏飞高效慢生活(第三版) 2018.11.09星期五 昨日午休/冥想:30min 九宫格目标及关键点 ① 学习·成...
    All_Fine阅读 217评论 0 0