【发布时间】:2013-11-20 00:18:58
【问题描述】:
在 Ruby 中,我可以有这样的模块:
module Greeter
def greet
print "Hello"
end
end
我的班级可以像这样获得greet 方法:
class MyClass
include Greeter
end
obj = MyClass.new
obj.greet
现在,我想用 Java 实现我的模块 Greeter。我正在使用 JRuby。我不确定如何在 Java 中创建一个 Ruby 模块(这样我就可以正常使用include)。
有一段时间我想制作一个 Java 接口。将它包含在我的 Ruby 类中不会引发错误,但它确实不是一回事,因为模块似乎实现了方法,而 Java 接口却没有。
【问题讨论】:
-
嗯...为什么?这有什么帮助?我认为它会混淆你的代码正在做什么,而且不是很好。
-
在 jruby 中,出于性能原因,我通常会发现自己将 ruby 代码下推到 java 实现中。
-
@theTinMan:主要是好奇心。坦率地说,隐藏这样的模块对我来说并不是那么糟糕。我正在编写一个游戏开发框架,老实说,最终用户肯定不想乱用这个模块——他们只需要(并且应该)将它包含在他们的 Ruby 类中。