Java 呼叫链的潜在问题

Java 呼叫链的潜在问题,java,methods,notation,Java,Methods,Notation,在下面的代码片段中,我使用一个类来获取对BookList实例的引用。这个类有一个getBook()方法,它从表示isbn代码的字符串返回一本书的实例。该指令在HttpServlet的doGet()方法中运行 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Book book = GlobalVar.book

在下面的代码片段中,我使用一个类来获取对BookList实例的引用。这个类有一个getBook()方法,它从表示isbn代码的字符串返回一本书的实例。该指令在HttpServlet的doGet()方法中运行

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
Book book = GlobalVar.bookList.getBook( request.getParameter("isbn") );
//
}
在这种情况下,您认为使用速记符号可能存在哪些问题


注:全局类将被ServletContext替换。

请求可能没有参数“isbn”。

请求可能没有参数“isbn”。

我想说NullPointerExceptions。如果执行HTTP GET请求的客户端没有名为“isbn”的参数,会发生什么。getBook的实现方式是否支持null作为参数?

我想说NullPointerExceptions。如果执行HTTP GET请求的客户端没有名为“isbn”的参数,会发生什么。getBook的实现方式是否支持null作为参数?

我不明白“速记”是什么意思。速记是什么意思?我不知道该怎么称呼它(如果有人有任何建议,我洗耳恭听),但我可以将其称为压缩代码作为替代。例如,可以对上面的代码行进行分解,以便首先获得对图书列表的引用,然后获得参数isbn的值,最后获得图书。在每一次检查之间,都会进行一些检查,这可能是我的一个坏习惯,就是把所有内容都写在一行中而跳过。我认为通用术语是“呼叫链接”。如果一路上的调用是“万无一失”的,或者通过异常报告错误,那么链接就没有什么错。如果你应该检查值和统计,特别是如果你看到无法解释的错误,那么你应该扩展你的代码。我不明白你所说的“速记”是什么意思。你所说的速记是什么意思?我不知道该怎么称呼它(如果有人有任何建议,我洗耳恭听),但我会把它称为压缩代码作为替代。例如,可以对上面的代码行进行分解,以便首先获得对图书列表的引用,然后获得参数isbn的值,最后获得图书。在每一次检查之间,都会进行一些检查,这可能是我的一个坏习惯,就是把所有内容都写在一行中而跳过。我认为通用术语是“呼叫链接”。如果一路上的调用是“万无一失”的,或者通过异常报告错误,那么链接就没有什么错。如果您应该检查值和stati,特别是如果您看到无法解释的错误,那么您应该扩展代码。Javadoc不清楚当使用null执行get()时会发生什么,但测试表明它没有任何后果。我的反射是测试book的实例之后是否为null。理想情况下,我应该开发一种可以避免异常的一致样式。Javadoc不清楚当使用null执行get()时会发生什么,但测试表明它没有任何后果。我的反射是测试book的实例之后是否为null。理想情况下,我应该发展一种始终如一的风格,避免例外。如果未检查book的值,这将导致NullPointerException,正如Roger指出的那样。我已经有了检查通过方法获得的值的习惯,所以这不是问题。我只是希望有一个清单,上面有好的实践可以应用。如果未检查book的值,这将导致NullPointerException,正如Roger指出的那样。我已经有了检查通过方法获得的值的习惯,所以这不是问题。我只是希望有一个清单,上面有好的实践可以应用。