日期:2014-05-20  浏览次数:20749 次

java有没有传函数指针的相当功能?
如果我遍历一棵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----- $