我正在尝试结合 Guice 的这 3 个特性:注入、多重绑定、泛型。我创建了一个生产项目的原型,所以这里是:
首先,这是泛型的一个小层次结构(在生产情况下有 N 个实体的层次结构):
public interface Type {
}
public class Type1 implements Type{
}
public class Type2 implements Type {
}
Run Code Online (Sandbox Code Playgroud)
接下来,我想通过Factory创建类ToCreate1和ToCreate2。
基类:
public abstract class AbstractToCreate<T extends Type> {
public T type;
public Integer param;
public AbstractToCreate(T type, Integer param){
this.type = type;
this.param = param;
}
}
Run Code Online (Sandbox Code Playgroud)
这是继承人:
public class ToCreate1 extends AbstractToCreate<Type1>{
@Inject
public ToCreate1(Type1 type, @Assisted Integer param) {
super(type, param);
}
}
public class …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Eclipse RCP 项目中使用 Apache POI 库。所以我将 poi、poi-ooxml 和 poi-ooxml-schemas 添加到项目中,但仍然出现异常
java.lang.NoClassDefFoundError: org/apache/poi/util/POILogFactory at org.apache.poi.POIXMLDocumentPart.<clinit>(POIXMLDocumentPart.java:53)
在这一行:
XWPFDocument doc = new XWPFDocument();
要将 poi 添加到项目,有一个 p2-repository 和 p2-maven 插件,其中包含以下工件:
<artifact>
<id>org.apache.poi:poi:3.14</id>
<source>true</source>
<transitive>false</transitive>
<instructions>
<Import-Package></Import-Package>
<Export-Package>*</Export-Package>
<DynamicImport-Package>*</DynamicImport-Package>
</instructions>
</artifact>
Run Code Online (Sandbox Code Playgroud)
<id>org.apache.poi:poi-ooxml:3.14</id>
(与和相同<id>org.apache.poi:poi-ooxml-schemas:3.14</id>
)。
我尝试直接在代码中使用 POILoggerFactoryPOILogger logger = POILogFactory.getLogger(POIXMLDocumentPart.class); logger.log(POILogger.INFO, "Test");
并且它有效!我不知道出了什么问题。
apache-poi ×1
eclipse ×1
eclipse-rcp ×1
generics ×1
guice ×1
java ×1
maven ×1
multibinding ×1
p2 ×1