Java:如何通过反射获取构造函数的钩子(Hook)/回调?

标签 java reflection constructor callback hook

是否可以通过反射获取构造函数的钩子(Hook)/回调?

我的用例是将表达式用作函数。在像 Kotlin 这样的语言中, float 表达式完全可以与扩展运算符结合使用,在某些情况下它可以形成真正简单的语法。

这无法通过代码实现来完成,因为语法必须完全无样板。

最佳答案

Java 不支持运算符重载。

我可能会误解,但从主题的名称来看,我假设您正在寻找的东西可能是通过这样的东西来实现的。

public abstract class CustomString {

    protected String wrappedString;

    public CustomString(String string){
        wrappedString = new String(string);
        callback();
    }

    abstract void callback();

    public String toString(){
       return wrappedString;
    }

    abstract void callback();

    }

然后扩展它以添加所需的行为。

public class CustomStringWithCallback extends CustomString{

public CustomStringWithCallback(String string) {
    super(string);
}

@Override
void callback() {
    System.out.println(wrappedString);
}

}

或者简单地使用匿名调用:

    new CustomString("some string") {
      @Override
      void callback() {
        System.out.println(wrappedString);   
      }
    }; 

如果您需要动态应用扩展(在运行时),您可以尝试应用装饰器模式来组成各种回调。

关于Java:如何通过反射获取构造函数的钩子(Hook)/回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851431/

相关文章:

c++ - 使用(连同)realloc 调用构造函数

java - VIES 增值税验证 wsdl 无法通过 java 代码运行

java - 编译: Error creating bean with name 'entityManagerFactory'

java - 如何获得 'unit test view' 进行仪表测试?

c# - 如何找到执行函数的对象类型和名称?

c# - 判断两个不同的 PropertyInfo 是否来自同一个接口(interface)?

C++ : can I do some processing before calling another constructor?

java - 用于存储来自文件输入 Java 的动态大小的 block 的最佳数据结构

java - 如何从 Java 中获取 Kotlin 属性的注释?

java - 如何控制多个对象的属性?