看到如下方法签名时,我感到非常不舒服:
public void foo(String theXml);
如果传递一个以UTF-16 XML声明开头的String,那会是什么?
在我看来,XML应该被类型化为强XML类型,如DOM树或字节数组.因此,foo应该重新声明为:
public void foo(Byte[] theXml);
通常,程序员会不必要地假设,当读取XML时有一定的编码.通常只是希望文件库的默认值能正确猜测.
我怎样才能激励我的同事呢?
不兼容的文档头编码声明的动机太弱了. (使用强类型或字节数组将阻止对文档进行简单的解析/修改.)我已经多次看到由于这种错误而导致编码中断的情况.
解决方法:
确保测试套件中存在测试,如果在String中错误地处理XML,则测试将失败.如果解释问题没有激励,显示它可能发生…
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。