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

Why is defensive programming needed if source code is hidden?

抱歉,如果问题不太好,这是我的第一个 post。

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

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

对于我的大学课程,我必须在 Java 中使用 Swing 和 AWT 创建一个网络浏览器。这个 web 浏览器是我一个人创建的,提交时我必须发送一个可执行的 JAR 文件和 .java 文件(只是为了标记它们,它们不会被编辑)。

就我而言,在编程方面,我知道我不会做防御性编程应该阻止的任何事情。源代码也永远不会 public 或被编辑(无论它是否为 public 使用而发布)。因此,既然无法从可执行文件中获取源代码,为什么还需要防御性编程呢?

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

希望我已经解释清楚了。

谢谢。

问题得到了众多评论的出色回答。最好摘自@Carcigenicate

的评论摘录

Once it's been compiled, it's not really an issue. It's to prevent you from messing up your own source code when you forget some aspect of it down the road.

所以还不允许我将此标记为已回答。