spring: ?.运算符

?.运算符

 

对于被调用方法的返回值来说,我们同样可以调用它的方法。例如,如果selectArtist()方法返回的是一个String,那么可以调用toUpperCase()将整个名字改为大写字母形式:

#{artisSelector.selectArtist().toUpperCase()}

 

如果selectArtist()的返回值不是null的话,这没有什么问题。为了避免出现NullPointerException,我们可以使用类型安全的运算符:

 

例如:

#{artisSelector.selectArtist()?.toUpperCase()}

 

与之前只是使用点号(.)来访问toUpperCase()方法不同,现在我们使用了“?.”运算符。这个运算符能够在访问它右边的内容之前,确保它所对应的元素不是null。所以,如果selectArtist()的返回值是null的话,那么SpEL将不会调用toUpperCase()方法。表达式的返回值会是null。

posted @ 2018-01-17 17:43  穆晟铭  阅读(186)  评论(0编辑  收藏  举报