AspectJ : String.splitをすこーしだけ便利にする。
この前、String.split("\\s")を実行したら、\sが全角スペースを含んでいなくて、このあたりやっぱりjavaは気が利いていないと思った次第です。で、試しにAspectJで無理くり実装してみた
package test; public aspect Pattern { pointcut stringSplit(String regex) : call(public * java.lang.String.split(String)) && args(regex) ; Object around(String regex): stringSplit(regex){ System.out.println(regex); if("\\s".equals(regex)){ regex="[\\s ]"; } return proceed(regex); } }
ポイントは、
- executionじゃなくて、callでポイントカットを宣言すること
くらいでしょうか。プロダクトで使うかどうかは微妙ですが、AspectJ、こんなこともできます、と。