java – 应该MAIN方法复制输入参数?
发布时间:2020-12-14 16:18:10 所属栏目:Java 来源:网络整理
导读:有人可以想象这段代码: public static void main(final String[] args) { // do something} 应该成为这样 public static void main(final String[] args) { String[] argsCopy = doCopy(args); // do something} (在我们公司,我们有一个声纳规则,强制所有方
有人可以想象这段代码:
public static void main(final String[] args) { // do something } 应该成为这样 public static void main(final String[] args) { String[] argsCopy = doCopy(args); // do something } (在我们公司,我们有一个声纳规则,强制所有方法的应对或争论.)我可以想象为什么它对于标准方法可能是重要的,但是在开始工具主要方法时我找不到任何好处.我错过了什么吗? 解决方法
复制数组参数的原因是为了避免在验证其元素后有人修改数组的可能性.这是一种非常好的防御技术,可以保护您免受来电者的恶意呼叫.
但是,在这种情况下,调用者是JVM本身.如果您不信任JVM来免除恶意代码,那么与复制数组可以解决的问题相比,它的问题要大得多. 唯一的例外是当您将参数传递给您的某些功能时.在这种情况下,制作副本是一个很好的主意,以防某些方法决定更改args的内容.这是我建议复制的唯一的情况.如果main是唯一使用args的地方,则不需要复制副本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |