Реализация интерфейса Java в сгенерированном JRuby файле .class / .java - PullRequest
5 голосов
/ 06 марта 2011

Я пытаюсь реализовать интерфейс Java в классе JRuby, например:

require 'java'
java_package 'net.jruby.test'
java_import "net.jruby.test.Service"

class RubyService
  include Service

  java_signature 'int sum(int, int)'
  def sum(a,b)
    a + b
  end
end

Интерфейс net.jruby.test.Service очень прост:

package net.jruby.test;

public interface Service
{
  int sum(int a, int b);
}

После этого ясоздать файл класса .java с:

jrubyc --java ruby_service.rb

Но сгенерированный файл .java (и, следовательно, файл .class) не реализуйте интерфейс, посмотрите:

public class RubyService extends RubyObject  {

Есть ли способ добиться этого?

1 Ответ

11 голосов
/ 06 марта 2011

Нашел ответ, вместо этого:

include Service

Мне нужно это:

java_implements 'Service'
...