gpt4 book ai didi

java - 如何用guice注入(inject)资源

转载 作者:搜寻专家 更新时间:2023-11-01 03:14:05 24 4
gpt4 key购买 nike

我有一个类,由 guice 注入(inject),此类构造函数调用 super,资源由 class.getResource(..) 加载

@SuppressWarnings("serial")
public class CleanAction extends AbstractAction {

private final JTable table;
private final PowderTableModel tableModel;

@Inject
public CleanAction(@Named("data") JTable table, PowderTableModel tableModel) {
super("Clean", new ImageIcon(CleanAction.class.getResource("/icons/table.png")));
this.table = table;
this.tableModel = tableModel;
}

...
}

它在测试中运行良好,但在 guice 初始化期间,CleanAction.class.getResource("icons/table.png") 的结果为 null,因此它因 NullPointerException 而失败。

有什么guice的方式注入(inject)资源吗?

最佳答案

要回答您的问题“是否有任何注入(inject)资源的简单方法?”,我会说“不,不是开箱即用的”。

但是,我在 Guts-GUI 中实现了一个基于 Guice 的 ResourceInjector 服务框架(Apache 许可证 2.0)。随意看一下,看看我是如何使用 Guice 特性来确保可以在 Guice 注入(inject)时注入(inject)资源的。

这比您描述的要普遍得多(在“资源”中我包含了 JLabelJButton...)

但是请注意,自动资源注入(inject)是一项复杂的业务(许多不同类型的资源...)

关于java - 如何用guice注入(inject)资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com