四种方法 参考: https://blog.csdn.net/sunxb10/article/details/81036693 https://blog.csdn.net/Arwen_H/article/details/83088902