https://www.oschina.net/code/snippet_116183_14202#23325 转载于:https://www.cnblogs.com/feibazhf/p/7250988.html