我怀疑这个问题可以结论性地回答,因为这是一个意见的问题。或者至少我相信 – 一个意见。 🙂
我明白你想要“0警告”(一个非常值得称道的目标),但可能没有一个“一刀切”的问题。那说…
我相信你不应该做的事情:
>使用断言。虽然你可以添加一个assert语句,Dalvik忽略它们。您可以配置仿真器,以便在需要时使用仿真器,但不能使用真实设备(参见Can I use assert on Android devices?)。所以虽然它可能会删除警告,但在实践中没有用。
>有方法throw NullPointerException。这将是一个坏主意,一般。在这种情况下,由于你可能覆盖onOptionsItemSelected(),甚至不可能。
检查(variable!= null)通常是最好的方法。但如果它是,做什么,虽然,提出一些其他选择。
>如果这是一个问题,你可以恢复,即,你可以继续应用程序,即使searchView不在那里,只是这样做。例如,只是从方法返回。记录这种情况是一个好主意,所以你可以在测试时发现它。
>否则,如果继续不可能,抛出异常。你想要fail early,这样可以很容易地检测到问题。这种情况下的一个合理的例外是IllegalStateException(见Java equivalent to .NET System.InvalidOperationException)。它基本上表明该方法在不适当的时间执行。但要小心,作为RuntimeException,这些异常未被选中,因此可能会导致应用程序崩溃。