gpt4 book ai didi

java - 我们可以改变函数的实现吗?

转载 作者:行者123 更新时间:2023-12-01 11:29:33 24 4
gpt4 key购买 nike

有一个框架,包含 4 个功能,例如:

public long t1(){
return 10;
}

public long t2(){
return 20;
}

public long t3() {
return 30;
}

public long t4(){
return (t2()-t1());
}

我们可以将 t4 的实现更改为:

 public long t4(){
return (t3() - t1());
}

添加:我们无法更改现有框架的实现。

add2:框架的这个类不是用户直接使用的,所以我无法扩展它,并重写该方法。

最佳答案

仅使用面向对象的 Java 或反射,您永远无法完全实现您所要求的目标。

事实上,更改方法实现就是更改类的静态部分。这是类加载后无法实现的。

但是如何在类加载之前更改静态部分呢?答案是:面向方面。然后您可以在源代码时、编译时或类加载时更改类的静态部分。

由于您不拥有源代码,我认为您正在使用预编译的库。所以你必须在类加载时执行此操作。这是由加载时间编织器完成的,例如使用 AspectJ。

我建议添加一个环绕建议来短路当前方法并执行您想要的语句。

总结:在该方法上使用 AspectJ 和环绕建议。

关于java - 我们可以改变函数的实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com