根據the docs,我可以將一個塊傳遞給期望接口的方法,並且該塊將轉換爲該接口的匿名實現。它太酷了!當預期接口時,我可以在JRuby中返回匿名閉包嗎?
但是,我有一個Java類的Ruby子類,它有一個方法,應該是返回東西,實現一個接口。
// Java
public abstract class Parent {
public MyInterface getIt();
}
# Ruby
class Child < Parent
def getIt
# Need to return an implementation of MyInterface?
end
end
我試圖做一個Proc
和lambda
,但是沒有那些工作。我可以添加強制自動轉換
protected MyInterface passThrough(MyInterface mi) { return mi; }
的方法,母公司(在Java中),然後這個作品:
def getIt
passThrough {|thing|
puts thing.inspect
}
end
這似乎真的哈克不過。這僅僅是JRuby工作方式的疏忽,還是我錯過了一些備用解決方案?