如果我遍历一棵XML树,对所有节点进行统一的操作,我希望这个操作是由用户提拱的一个函数。所以想像C/C++中一样传一个函数指针当做参数,然后在我的函数中调用,怎么做到类似的功能呢?
------解决方案--------------------
没有,但可以传方法,传类,
利用反射机制达到类似功能
------解决方案--------------------
同意,利用反射机制可以解决这个问题。楼上的抢先了
http://www.javaedu.com.cn 上海Java培训。
------解决方案--------------------
用反射
class类
你用的地方参数传class名字,method名字,method的参数
然后class类里面有getMethod方法,然后可以执行取到的method
------解决方案--------------------
为什么不直接用SAX解析器?
你所说的功能就是回调函数吧,Java是可以轻易实现的。
参考JavaBean的事件设计。
------解决方案--------------------
开玩笑,反射用来干这个太大材小用了。
你传个interface过去不就得了,。
其实C++里也不单单传递函数指针的,也会传递interface达到这种效果。
------解决方案--------------------
楼上说对了,用interface即可。
声明一个interface,在里面声明一个方法。
在你的类中编写一个方法,给该方法设置一个该interface类型的参数,在该方法中回调interface中的那个方法。
由于用户必须实现该interface才可以调用你类中的方法,而实现interface就必须实现interface中声明的那个方法。所以,就可以保证你可以调用到用户实现的方法了。
------解决方案--------------------
晕,用Interface,我记得Effective Java专门有这么一条吧。
------解决方案--------------------
反射
invoke
------解决方案--------------------
invoke
------解决方案--------------------
$ zz╭ ?╮╭ ﹌╮. $
$ z(o-.-o)(o-.-o) . $
$ ┏~﹊︸ ̄~﹊︸ ̄~┓ $
$ IT者-IT开发者的网站-- $
$ 10万篇技术资料--天天更新 $
$ -----www.itzhe.cn----- $