如何在不同的 OSGi 包中实现接口?

How to implement an interface in a different OSGi bundle?

我才刚刚开始,我认为这是一个非常基本的问题,我什至无法在网上找到任何关于它的信息,但我终其一生都无法解决这个问题。

我有两个单独的捆绑包,一个是 API,一个是服务包。在 API 包中的一个包中,我有一个名为 "HelloAPI":

的接口
package com.example.osgi.api;

public interface HelloAPI {

    public void sayHello();

}

在服务包中,我有一个 class,代码如下:

package com.example.osgi.service;

public class HelloImpl {

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

但是 eclipse 突出显示了 "implements" 关键字下的错误,即:

令牌语法错误 "implements",需要接口。

我看不出我做错了什么,谁能指出我正确的方向?谢谢

我非常同意这些评论——学习 Java 语言的基础知识非常重要 处理更高级的主题(如模块化)之前。

作为参考,下面是您的接口的正确实现:

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