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

2019-03-11  本文已影响0人  灬醉饮千殇

【第 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条件

上一篇下一篇

猜你喜欢

热点阅读