首页 > 代码库 > 【代码优化】方法签名及参数检查

【代码优化】方法签名及参数检查

参数检查:

绝大多数方法的构造器对于传递给它的参数值会有某些限制。例如,索引值必须是非负数,对象不能

为null等等。


如果传递无效参数给方法,在执行前没对参数进行检查,该方法可能在处理过程中失败,并且产生令

人费解的异常。更糟的是,该方法可以正常返回数据。但是会得到一个错误的结果,你还认为是正确的,

没发现其中的倪端。


所以对于方法参数的检查是有必要的。

常见的几个错误,IllegalArgumentException,IndexOutOfBoundsException和NullPointException

对这些常见的错误进行处理,可以给你减少很多麻烦。


不过有时候的参数检查会带来相当大的开销,这样你就要考虑怎么做才更好的保护程序健壮性的同时

具有高效性。比如,考虑一个为对象列表排序方法:Collections.sort(List).列表中的所有对象都必须是可以

相互比较的。如果不能比较,就会抛出ClassCastException,这正是sort方法做的事情。你就没必要去对

sort的参数List进行检查了,而且检查会带来很大开销。

总之,编写每个方法时候都应该想到检查参数,有不有必须去进行检查就要仔细思考方法的限制了。


谨慎设计方法签名:

谨慎的使用方法名称。遵循标准的命名习惯,首要目的是容易理解,让其他开发者懂得你所表达的意思。

第二目的是选择大众认可的,尽量使用大家平时习惯相一致的名称。


不要过于追求提供便利的方法。每个方法在容易读的前提下,尽其所能。方法太多会使类难以学习。


避免过长的参数列表。参数列表太长,不美观,也难读,就好4个一下。


对于参数类型,要优先使用接口而不是类。比如方法参数应该传map,不应该传Hashmap,这使你可以

传入hashtable,hashmap,treemap这些类型。如果传入的是类,就对方法做了限制。