小编And*_*rew的帖子

guice 辅助注入 + 多重绑定 + 泛型

我正在尝试结合 Guice 的这 3 个特性:注入、多重绑定、泛型。我创建了一个生产项目的原型,所以这里是:

首先,这是泛型的一个小层次结构(在生产情况下有 N 个实体的层次结构):

    public interface Type {
    }
    public class Type1 implements Type{
    }
    public class Type2 implements Type {
    }
Run Code Online (Sandbox Code Playgroud)

接下来,我想通过Factory创建类ToCreate1ToCreate2

基类:

    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)

java generics guice multibinding assisted-inject

6
推荐指数
1
解决办法
892
查看次数

NoClassDefFoundError: org/apache/poi/util/POILogFactory

我正在尝试在 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");并且它有效!我不知道出了什么问题。

eclipse p2 eclipse-rcp apache-poi maven

5
推荐指数
1
解决办法
2万
查看次数