gpt4 book ai didi

java - 在 Java 中将可变数量的方法从一个地方复制到另一个地方

转载 作者:行者123 更新时间:2023-11-28 13:29:59 25 4
gpt4 key购买 nike

我想知道将以下 JavaScript 代码移植到 Java 的最有效方法是什么?

// Copies a variable number of methods from source to target.
rebind = function(target, source) {
var z = 1, c = arguments.length, func;

while (++z < c) {
target[func = arguments[z]] = rebind(target, source, source[func]);
}

return target;
};

// method is a getter-setter:
// If passed with no arguments, gets the value.
// If passed with arguments, sets the value and returns target.
function rebind(target, source, func) {
return function() {
var value = func.apply(source, arguments);
return value === source ? target : value;
};
}

最佳答案

你不知道。

Java 不像 JavaScript 那样是动态的;您“不能”将方法从一个地方复制到另一个地方。

有很多方法可以假装你可以做到这一点,例如通过实现一个可以委托(delegate)的对象、通过使用静态方法实现接口(interface)(仅限 JDK8+)、破坏 IDE 功能的可怕字节码游戏、运行时类加载冒险,等等。

除非在有限的、可怕的情况下,您也可以在编译或加载时执行这一切,而不是运行时。

关于java - 在 Java 中将可变数量的方法从一个地方复制到另一个地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25746204/

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