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

标签 java javascript

我想知道将以下 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/

相关文章:

javascript - 文件夹中的随机照片 - JavaScript

javascript - 从 firebase 函数读取数据

java - 如何在 Windows Bitnami 堆栈上为 Solr 4.5 设置 JVM 堆大小?

java - 预览窗口(如 Windows 7 任务栏显示打开的应用程序)

java - 如何创建一个根据调用者类型进行过滤的切入点?

javascript - 如何使用javascript在客户端通过串口进行通信?

javascript - 我的警告标签未显示在无效输入上

javascript - SonarQube JavaScript 禁用部分代码

java - 在 Java 中使变量同步且可见

Java-迷宫广度优先搜索最短路径