Java:我如何通过反射获得构造函数的钩子/回调?

是否有可能通过反射获得构造函数的钩子/回调?

我的用例是使用表达式作为函数。 在像Kotlin这样的语言中,浮动表达式完全可以与扩展运算符结合使用,在某些情况下,它可以使语法变得非常简单。

这不能用代码实现完成,因为语法必须完全没有样板。

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); } }; 

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