首页 > 代码库 > 【代码优化】方法签名及参数检查
【代码优化】方法签名及参数检查
参数检查:
绝大多数方法的构造器对于传递给它的参数值会有某些限制。例如,索引值必须是非负数,对象不能
为null等等。
如果传递无效参数给方法,在执行前没对参数进行检查,该方法可能在处理过程中失败,并且产生令
人费解的异常。更糟的是,该方法可以正常返回数据。但是会得到一个错误的结果,你还认为是正确的,
没发现其中的倪端。
所以对于方法参数的检查是有必要的。
常见的几个错误,IllegalArgumentException,IndexOutOfBoundsException和NullPointException
对这些常见的错误进行处理,可以给你减少很多麻烦。
不过有时候的参数检查会带来相当大的开销,这样你就要考虑怎么做才更好的保护程序健壮性的同时
具有高效性。比如,考虑一个为对象列表排序方法:Collections.sort(List).列表中的所有对象都必须是可以
相互比较的。如果不能比较,就会抛出ClassCastException,这正是sort方法做的事情。你就没必要去对
sort的参数List进行检查了,而且检查会带来很大开销。
总之,编写每个方法时候都应该想到检查参数,有不有必须去进行检查就要仔细思考方法的限制了。
谨慎设计方法签名:
谨慎的使用方法名称。遵循标准的命名习惯,首要目的是容易理解,让其他开发者懂得你所表达的意思。
第二目的是选择大众认可的,尽量使用大家平时习惯相一致的名称。
不要过于追求提供便利的方法。每个方法在容易读的前提下,尽其所能。方法太多会使类难以学习。
避免过长的参数列表。参数列表太长,不美观,也难读,就好4个一下。
对于参数类型,要优先使用接口而不是类。比如方法参数应该传map,不应该传Hashmap,这使你可以
传入hashtable,hashmap,treemap这些类型。如果传入的是类,就对方法做了限制。