java - 函数指针 - 传递对自身的引用

标签 java

你好,可以用JAVA实现函数指针吗 我正在尝试做这样的事情

void methodA
{
  try
   {
   }
  catch(Exception E)
   {
    methodB(Pass the function pointer pointing to methodA)
   }
}

void methodB(fp some_function_pointer)
{
   call some_function_pointer
}

最佳答案

不,但是你可以传递对象本身:

public class Foo {
    void methodA() {
        try {
        }
        catch(Exception e) {
            bar.methodB(this)
        }
    } 
}

public class Bar {
    void methodB(Foo someFoo) {
        someFoo.methodA();
    } 
}

如果您希望能够传递任何方法,则将此方法包装到一个 Runnable 或 Callable 中,例如:

public class Foo {
    void methodA() {
        try {
        }
        catch(Exception e) {
            bar.methodB(new Runnable() {
                @Override
                public void run() {
                    Foo.this.methodA();
                }
            });
        }
    } 
}

public class Bar {
    void methodB(Runnable runnable) {
        runnable.run();
    } 
}

关于java - 函数指针 - 传递对自身的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868704/

相关文章:

Java:允许重复的排序集合,内存效率高并提供快速插入+更新

java - 实现Java API示例代码

java - 在 spring boot 应用程序的服务层中正确使用 Optionals

java - 正则表达式来识别不应嵌套的 anchor 标记

java - 获取集合子集的策略

java - Short 转 int 自动提升

java - 为什么直接同步ArrayList可以确保其对其他线程的可见性

java - 将 PEM 公钥读入 iOS

java - 添加多个 Struts 操作时遇到问题

java - springMVC : view won't submit values to controller