Lookup.getDefault()。lookup()返回null

时间:2014-05-13 23:37:23

标签: java api netbeans lookup gephi

如果查找返回null,应该怎么做?我正在使用org.openide.util.Lookup的Lookup.getDefault()。lookup()来查找对象的实例。一般模式是传递一个Class对象并返回该类的实例或null。

我在下面的代码中使用它:

StreamingServer server = Lookup.getDefault().lookup(StreamingServer.class);
ServerControllerFactory controllerFactory = Lookup.getDefault().lookup(ServerControllerFactory.class);
StreamingController controller = Lookup.getDefault().lookup(StreamingController.class);

由于未找到任何问题,因此会为每个问题返回null,server',' controllerFactory',' { {1}}&#39 ;.我需要处理这种情况,以便我可以使用这些对象来访问方法,如:

controller

我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

您需要在Eclipse源文件夹中创建一个META-INF/services文件夹。然后,对于每个类,在META-INF/services文件夹中创建一个文本文件。文本文件的名称是类类型的全名(包括包位置),文本文件的内容是实现类的全名(包括包位置)(不一定是同一个名称)该课程。)

例如,对于ServerControllerFactory类,您将创建一个名为org.gephi.streaming.server.ServerControllerFactory的文本文件,该文件将包含的文本为org.gephi.streaming.server.impl.ServerControllerFactory

答案 1 :(得分:0)

对我而言,我试图致电lookup的课程只需要这样的@ServiceProvider装饰:

@ServiceProvider(service = MyClassHere.class)
public final class MyClassHere ....