加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何基于调用类的名称实现Java方法,该方法将调用另一个方法?

发布时间:2020-12-14 19:25:10 所属栏目:Java 来源:网络整理
导读:我们有一个Java类,WebCenterGrid.此类包含在网格中执行操作的方法,例如查找行,查找单元格值,对列进行排序.我们有几个使用此类的类.使用它的类都引用不同的网格,但是功能是相同的. 唯一不同的是如何创建网格.某些类进行的搜索会填充网格(搜索也会刷新).有些执

我们有一个Java类,WebCenterGrid.此类包含在网格中执行操作的方法,例如查找行,查找单元格值,对列进行排序.我们有几个使用此类的类.使用它的类都引用不同的网格,但是功能是相同的.

唯一不同的是如何创建网格.某些类进行的搜索会填充网格(搜索也会刷新).有些执行updateList()来更新网格等.

我想向WebCenterGrid添加一种方法来刷新网格.问题是,正如我所说的,每种方法都有不同的名称.

我以某种方式希望将要进行刷新的方法的名称传递给WebCenterGrid.我进行了一些搜索,发现了一些关于lambda的东西,但我并不太了解.

我已经有一段时间没有使用C了,但是有某种方法可以将方法传递给这些方法.此类是使用Java而不是Java编写的,但是有某种可以理解的等效形式吗?

 public class WebCenterGrid {
    ....
    ....
    public void refresh(Method meth) {
           meth();
    }
 }
最佳答案
基本上有两种方法.

一种是使用反射,这意味着:依赖运行时类型信息,通常从原始字符串派生.就像说:我有一些类X的对象,并且我想在该对象上调用名为“ doTheFoo()”的方法.

有关所有荣耀的详细信息,请参见here.

更好的方法是使用MethodHandle类,而不是“原始”反射Method类.有关手柄,请参见here.

但是然后:反射在运行时发生.您的代码可以很好地编译,但是如果您弄错了任何细节,则会在运行时将其炸毁.

因此,我建议研究基于Function的lambda,请参见here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读