如何基于调用类的名称实现Java方法,该方法将调用另一个方法?
我们有一个Java类,WebCenterGrid.此类包含在网格中执行操作的方法,例如查找行,查找单元格值,对列进行排序.我们有几个使用此类的类.使用它的类都引用不同的网格,但是功能是相同的. 唯一不同的是如何创建网格.某些类进行的搜索会填充网格(搜索也会刷新).有些执行updateList()来更新网格等. 我想向WebCenterGrid添加一种方法来刷新网格.问题是,正如我所说的,每种方法都有不同的名称. 我以某种方式希望将要进行刷新的方法的名称传递给WebCenterGrid.我进行了一些搜索,发现了一些关于lambda的东西,但我并不太了解. 我已经有一段时间没有使用C了,但是有某种方法可以将方法传递给这些方法.此类是使用Java而不是Java编写的,但是有某种可以理解的等效形式吗?
最佳答案
基本上有两种方法.
一种是使用反射,这意味着:依赖运行时类型信息,通常从原始字符串派生.就像说:我有一些类X的对象,并且我想在该对象上调用名为“ doTheFoo()”的方法. 有关所有荣耀的详细信息,请参见here. 更好的方法是使用MethodHandle类,而不是“原始”反射Method类.有关手柄,请参见here. 但是然后:反射在运行时发生.您的代码可以很好地编译,但是如果您弄错了任何细节,则会在运行时将其炸毁. 因此,我建议研究基于Function的lambda,请参见here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |