2017-02-15 3 views
-2

Ich habe buchstäblich gerade angefangen und ich denke, das ist so eine grundlegende Frage, dass ich nicht einmal online etwas darüber finden kann, aber ich kann nicht für das Leben von mir herauszufinden, dass dies heraus.Wie implementiert man eine Schnittstelle in einem anderen OSGi-Bundle?

Ich habe zwei separate Bundles, eine API und ein Service-Bundle. In einem Paket in dem API-Paket Ich habe eine Schnittstelle „HelloAPI“ genannt:

package com.example.osgi.api; 

public interface HelloAPI { 

    public void sayHello(); 

} 

Im Servicepaket habe ich eine Klasse mit dem folgenden Code:

package com.example.osgi.service; 

public class HelloImpl { 

    implements HelloAPI { 
     System.out.println("Hello World!"); 
    } 
} 

aber Eclipse hat einen Fehler hervorgehoben unter das "implements" Schlüsselwort welches ist:

Syntaxfehler auf Token "implementiert", erwartete Schnittstelle.

Ich kann nicht sehen, was ich falsch gemacht habe, kann mir jemand in die richtige Richtung zeigen? Vielen Dank.

+0

'implements' geht direkt nach dem Klassennamen. Sie haben ein '{' dazwischen. Auch Ihre Methodendefinition ist falsch. Vielleicht möchten Sie mit OSGi warten, bis Sie Ihr grundlegendes Verständnis der Sprache haben. Vor allem Klassenwege. –

+0

@ ThorbjørnRavnAndersen Ich werde hier in das tiefe Ende geworfen, ich spiele nur Aufholjagd. Was ist falsch an meiner Methodendefinition? –

+0

https://docs.oracle.com/javase/tutorial/java/IandI/usinginterface.html –

Antwort

2

Ich stimme den Kommentaren sehr zu - es ist wichtig, die Grundlagen der Java-Sprache vor zu erlernen, die fortgeschrittenere Themen wie Modularität angehen.

Als Referenz hier ist eine korrekte Umsetzung Ihrer Schnittstelle:

public class HelloImpl implements HelloAPI { 
    public void sayHello() { 
     System.out.println("Hello World!"); 
    } 
} 
Verwandte Themen