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

前端之家收集整理的这篇文章主要介绍了如何基于调用类的名称实现Java方法,该方法将调用另一个方法? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们有一个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.

猜你在找的Java相关文章