1

作为一个懒惰的程序员,我通常会忽略JspJava代码中的编译器警告。

我可以通过认为缺少 JavaScript、验证和其他东西可以在运行时解决来证明JSP警告的合理性。但需要确定。

但我总是被Java警告取笑,比如

  • [通用类型] 是原始类型。应该参数化对泛型类型 [GENERIC TYPE] 的引用。

  • 字段 [FIELD NAME] 永远不会在本地读取。

还有更多。

我的问题是

警告对性能有影响吗?

  • 如果不是,那为什么编译器一直在喊?是在帮我们写好代码吗?
  • 如果可能,那么哪些类型的警告不应该被忽视?
  • 如果是,(内存可能)那么它有多深?
4

2 回答 2

0

编译器警告几乎总是提醒您潜在的意外行为或不必要的代码。实际上,它们不会影响代码的运行时性能。编写性能不佳的代码(容易做到)是一个更大的担忧。

就未使用的局部变量而言,某些编译器可能会对此进行优化,而根本不分配内存进行赋值。但是,产生结果的语句仍然需要执行,因为它们可能包含副作用。

有一些方法可以关闭您承认对您的代码不重要的各种类型的编译器警告(例如,“应该声明一个 serialVersionUID”警告是一种常见的警告,但通常并不特别适用)。您可以使用每个类/方法/字段的 @SuppressWarnings 注释来执行此操作,或者您可以通过向其提供选项在编译器级别执行一次。

于 2012-05-31T14:05:26.397 回答
0

如果不是,那为什么编译器一直在喊?是在帮助我们写出好的代码吗?

绝对如此。大多数警告都是“最佳实践......未实践” :) 例如,如果 Java 现在提供泛型,为什么要使用原始类型?

你可能有理由忽视它们。然后许多 IDE 让您可以关闭这些警告。

于 2012-05-30T10:08:31.767 回答