Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果源代码是隐藏的,为什么需要防御性编程?_Java_Standards_Defensive Programming - Fatal编程技术网

Java 如果源代码是隐藏的,为什么需要防御性编程?

Java 如果源代码是隐藏的,为什么需要防御性编程?,java,standards,defensive-programming,Java,Standards,Defensive Programming,抱歉,如果问题不太好,这是我的第一篇帖子 我知道在Java中,防御性编程是一件好事,因为如果变量的值不应该更改,它会阻止变量的值被更改。但是,如果编译了一个程序,是否需要这样做 我的意思的一个例子如下: 在我的大学课程中,我必须使用Java中的Swing和AWT创建一个web浏览器。这个web浏览器完全由我创建,提交时我必须发送一个可执行的JAR文件和.java文件(只有这样才能标记它们,它们才不会被编辑) 从编程角度来看,我知道我不会做任何防御性编程应该阻止的事情。源代码也永远不会公开或被编辑

抱歉,如果问题不太好,这是我的第一篇帖子

我知道在Java中,防御性编程是一件好事,因为如果变量的值不应该更改,它会阻止变量的值被更改。但是,如果编译了一个程序,是否需要这样做

我的意思的一个例子如下:

在我的大学课程中,我必须使用Java中的Swing和AWT创建一个web浏览器。这个web浏览器完全由我创建,提交时我必须发送一个可执行的JAR文件和.java文件(只有这样才能标记它们,它们才不会被编辑)

从编程角度来看,我知道我不会做任何防御性编程应该阻止的事情。源代码也永远不会公开或被编辑(无论是否公开使用)。因此,既然您无法从可执行文件中获取源代码,那么为什么需要防御性编程呢

我觉得我只会使用它,因为它是公认的编程标准

我希望我已经解释清楚了


谢谢。

无数评论精彩地回答了这个问题。最好是摘自@Carcigenicate的评论


一旦它被编译,它就不是一个真正的问题。这是为了防止您在忘记源代码的某些方面时弄乱自己的源代码


所以,我现在还不想把这个问题标记为已回答。

无数评论精彩地回答了这个问题。最好是摘自@Carcigenicate的评论


一旦它被编译,它就不是一个真正的问题。这是为了防止您在忘记源代码的某些方面时弄乱自己的源代码


所以我现在还不想把这个问题标记为已回答。

JAR是可逆的,但我的问题仍然代表任何编程语言,而不仅仅是Java。一个.exe文件仍然会有相同的点。一旦它被编译,它就不是一个真正的问题。这是为了防止您在忘记源代码的某些方面时弄乱自己的源代码。如果你在同一个代码上工作的时间足够长,即使你是作者,最终也会忘记一些事情。帮你自己一个忙,让未来的你尽可能的不破坏它。你似乎认为防御性编程是关于拷贝保护之类的。不是。(维基百科):防御性编程是一种防御性设计,旨在确保软件在不可预见的情况下继续运行。它是关于错误处理的,使代码保护自己不受坏数据的影响,甚至不受编码错误的影响。@不,所以它基本上是保护您不受自己的影响,如果适用的话,也保护您不受同一项目的其他开发人员的影响?我在九月份开始使用Java,但我并不是同时在做项目,所以你说得对,我没有经验!JAR是可逆的,但我的问题仍然代表任何编程语言,而不仅仅是Java。一个.exe文件仍然会有相同的点。一旦它被编译,它就不是一个真正的问题。这是为了防止您在忘记源代码的某些方面时弄乱自己的源代码。如果你在同一个代码上工作的时间足够长,即使你是作者,最终也会忘记一些事情。帮你自己一个忙,让未来的你尽可能的不破坏它。你似乎认为防御性编程是关于拷贝保护之类的。不是。(维基百科):防御性编程是一种防御性设计,旨在确保软件在不可预见的情况下继续运行。它是关于错误处理的,使代码保护自己不受坏数据的影响,甚至不受编码错误的影响。@不,所以它基本上是保护您不受自己的影响,如果适用的话,也保护您不受同一项目的其他开发人员的影响?我在九月份开始使用Java,但我并不是同时在做项目,所以你说得对,我没有经验!