当前位置: 首页 > 面试题库 >

如何在Clojure中实现Java接口

东郭承业
2023-03-14
问题内容

如何创建实现此接口的Clojure对象,然后从Java代码调用它?

public interface Doer {
   public String doSomethin(String input);
}

Doer clojureDoer = ?;

String output = clojureDoer.doSomethin(input);

问题答案:

reify是实现接口的首选- proxy重型,较旧且较慢,因此应尽可能避免。一个实现看起来像:

(reify Doer
  (doSomethin [this input]
    (...whatever...)))


 类似资料:
  • 问题内容: 我想在Java中实现方法链接。 我该如何实现? 还请告诉我何时使用它。 我想创建可以按如下方式使用的方法链接: 或喜欢 或喜欢 问题答案: 让你的方法返回如下: 这样,每次调用其中一个方法后,你将获得返回的同一对象,以便可以调用另一个方法。 当你要在对象上调用一系列方法时,此技术很有用:它减少了实现该方法所需的代码量,并允许你在方法链之后使用单个返回值。 减少显示对话框所需的代码量的一

  • 问题内容: 我正在尝试用Java实现一个简单的HashTable,该哈希表使用链接表来解决冲突,这在C语言中很容易实现,但是我不知道如何在Java中实现它,因为您不能使用指针。 。 首先,我知道这些结构已经在Java中实现,我不打算使用它,只是在这里进行培训… 所以我创建了一个元素,它是一个字符串和一个指向下一个元素的指针: 当然,我的HashTable有一个Element数组来存储数据: 这是我

  • 问题内容: 如何实现与C#代码等效的Python? 这是一个好主意吗??请在您的答案中举例说明。 问题答案: 正如其他人在这里提到的: 在Python中不需要接口。这是因为Python具有适当的多重继承,还具有鸭式输入法,这意味着 必须 在Java中具有接口的地方,而不必在Python中具有接口。 也就是说,接口还有多种用途。其中一些被Python 2.6中引入的Pythons抽象基类覆盖。如果您

  • 问题内容: C ++具有多重继承。汇编级别的多重继承的实现可能非常复杂,但是在线上通常有很好的说明(vtable,指针修复,thunk等)。 Java没有多重实现继承,但是它确实具有多重接口继承,因此我认为每个类只有一个vtable的直接实现无法实现。java如何在内部实现接口? 我意识到与C++相反,Java是Jit编译的,因此不同的代码段可能会进行不同的优化,并且不同的JVM可能会做不同的事情

  • 我正在测试Clojure/Java互操作。我创建了一个新的Leiningen项目并创建了这个项目。clj文件以及我将使用的几个依赖项: 我还包含了“java-Source-路径”列表,并将一个hello.java文件放入src/java目录,如下所示: 然后我创造了这个核心。模板中的clj文件: 如您所见,我甚至没有在应用程序函数中使用hello java类,我只是需要它,但当我在终端中运行“le

  • 问题内容: 我不确定如何在我的抽象类中实现类似的接口。我有以下示例代码可用来尝试解决这个问题: 我有一个测试类,该类将创建Animal类型的对象,但是我希望在该类中具有一个可比的接口,以使发现的年纪高于低位。我不知道如何去解决这个问题。 问题答案: 您只需要定义即p。然后,您必须以自己喜欢的方式实现该方法。 使用的实现,具有较高级别的动物将获得更高的顺序。我希望你的想法和这个例子。