首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lookup.getDefault().lookup()返回null

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

Stack Overflow用户
提问于 2014-05-14 07:37:23
回答 2查看 954关注 0票数 1

如果查找返回null,该如何处理?我使用的是org.openide.util.Lookup的Lookup.getDefault().lookup(),它用于查找对象的实例。一般的模式是传递一个Class对象,然后返回该类的一个实例或null。

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

代码语言:javascript
复制
StreamingServer server = Lookup.getDefault().lookup(StreamingServer.class);
ServerControllerFactory controllerFactory = Lookup.getDefault().lookup(ServerControllerFactory.class);
StreamingController controller = Lookup.getDefault().lookup(StreamingController.class);

由于未找到实例,因此'server‘、'controllerFactory’、'controller‘返回null。我需要处理这种情况,以便可以使用这些对象来访问方法,如下所示:

代码语言:javascript
复制
controllerFactory.createServerController(graph)

server.register(serverController, context)

我如何才能做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2015-07-21 15:40:36

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

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

票数 0
EN

Stack Overflow用户

发布于 2015-10-27 02:50:04

对我来说,我试图在其上调用lookup的类只需要这样的@ServiceProvider装饰:

代码语言:javascript
复制
@ServiceProvider(service = MyClassHere.class)
public final class MyClassHere ....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23643324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档