2011-03-06 10 views
5

estoy tratando de implementar una interfaz Java en una clase JRuby, así:La implementación de una interfaz Java en el JRuby generado .class/.java presentar

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 

La interfaz net.jruby.test.Service es muy simple:

package net.jruby.test; 

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

Después de eso me genera el archivo de clase .java con:

jrubyc --java ruby_service.rb

Pero la generada .java archivo (y en consecuencia el archivo .class) no implementan la interfaz, se ven:

public class RubyService extends RubyObject { 

¿Hay alguna manera de lograr esto?

+0

He pedido en el canal de IRC y la lista de correo sin suerte (al menos inmediata), así que por favor no me señale allí, conozco esas opciones –

Respuesta

11

encontrado la respuesta, en lugar de esto:

include Service 

Necesitaba esto:

java_implements 'Service' 
+0

¿Recuerda dónde encontró esto? –

+1

"Uso del libro JRuby", creo. –

Cuestiones relacionadas