pc|别再if-else走天下了,整个注解多优雅( 四 )


public class OrderHandlerTypeImpl implements OrderHandlerType { private String source private String payMethod OrderHandlerTypeImpl(String source, String payMethod) { this.source = source this.payMethod = payMethod } @Override public String source() { return source } @Override public String payMethod() { return payMethod } @Override public Class annotationType() { return OrderHandlerType.class } }
在获取对应OrderHandler时我们可以这样写 ,
public void orderService(Order order) { // ...一些前置处理 // 通过订单来源确以及支付方式获取对应的handler OrderHandlerType orderHandlerType = new OrderHandlerTypeImpl(order.getSource(), order.getPayMethod()) OrderHandler orderHandler = orderHandleMap.get(orderHandlerType) orderHandler.handle(order) // ...一些后置处理}
看起来没什么问题了 , 来运行一下 。 不对劲啊 , 空指针 , 那个异常它来了 。
我们断点打在NPE那一行 ,
pc|别再if-else走天下了,整个注解多优雅
本文插图
【来源:Java架构师之路】
声明:转载此文是出于传递更多信息之目的 。 若有来源标注错误或侵犯了您的合法权益 , 请作者持权属证明与本网联系 , 我们将及时更正、删除 , 谢谢 。邮箱地址:newmedia@xxcb.cn