小议方法参数的可见性

大家说到方法的可见性时,说得都是方法前面的修饰符(public,protected,private),可是方法的参数可见性却一直没有提及。
1:最大可见性的参数类型Object,这个类型可以允许传入任何类型的参数,一般都用于方法内部通过反射来调取参数属性及方法的。
2:次之可见性为Collection类型的,可以传入的对象很多都是一个集合,通过转型或者反射操作,原理和Object基本上差不多。
3:Interface操作。传入一个类型的接口,这样可以通过接口操作参数的各种方法。
4:具体类型。只能传入一种类型或者其子类。有些类似Interface(如果存在子类的话)。
这几种可见性,也要根据情况使用,要尽量在可预见的情况下,使用最小的可见范围。意思就是能使用多小范围就是用多小范围。当然了,自己会预见今后会扩展,就不能使用具体的类,需要使用Interface类型的,或者类似的(即父类)作为参数类型。
范围使用的比较大的话,那么不利于编译检查,也不是强类型语言的有点所在。试想所有的参数都是Object,那么将是多么可怕的事情。

猜你喜欢

转载自sinokaka.iteye.com/blog/48522