我已经这样做了一百万次,但现在它不起作用,我不知道为什么!
我的界面定义了作家的合同,例如:
public interface Writer {
void exit() throws IOException;
void write(String row) throws IOException;
}
具体实施:
import com.google.inject.assistedinject.Assisted;
import javax.inject.Inject;
public class TextFileWriter implements Writer {
//...
@Inject
public TextFileWriter(@Assisted("store") String store, @Assisted("prefix") String prefix, @Assisted Line line, @Assisted LocalDate date) throws IOException {
//...
}
//...
}
现在工厂:
public interface WriterFactory {
Writer textWriter(String store, String prefix, Line line, LocalDate date) throws IOException;
}
最后是我的配置:
@Override
protected void configure() {
install(new FactoryModuleBuilder()
.implement(Writer.class, TextFileWriter.class)
.build(WriterFactory.class)
);
}
在启动时进行所有这些操作,它会引发一个异常,即:
没有绑定带有 @com.google.inject.assistedinject.Assisted(value=prefix) 注释的 java.lang.String 的实现。 在daemons.filerecorder.WriterFactory.textWriter
中为 daemons.filerecorder.TextFileWriter.(TextFileWriter.java:38) 的第二个参数定位带有 @com.google.inject.assistedinject.Assisted(value=prefix) 注释的 java.lang.String
(WriterFactory.java:1) at com.google.inject.assistedinject.FactoryProvider2.initialize(FactoryProvider2.java:666) at com.google.inject.assistedinject.FactoryModuleBuilder$1.configure(FactoryModuleBuilder.java:335)(通过模块: com.google.inject.util.Modules$OverrideModule -> modules.GuiceConfig -> com.google.inject.assistedinject.FactoryModuleBuilder$1)没有绑定带有 @com.google.inject.assistedinject.Assisted(value=store) 注释的 java.lang.String 的实现。 同时在 daemons.filerecorder.WriterFactory.textWriter
中为 daemons.filerecorder.TextFileWriter.(TextFileWriter.java:38) 的第一个参数定位带有 @com.google.inject.assistedinject.Assisted(value=store) 注释的 java.lang.String
(WriterFactory.java:1) at com.google.inject.assistedinject.FactoryProvider2.initialize(FactoryProvider2.java:666) at com.google.inject.assistedinject.FactoryModuleBuilder$1.configure(FactoryModuleBuilder.java:335)(通过模块: com.google.inject.util.Modules$OverrideModule -> modules.GuiceConfig -> com.google.inject.assistedinject.FactoryModuleBuilder$1)已在 daemons.filerecorder.WriterFactory.textWriter() 中配置了与带有 @com.google.inject.assistedinject.Assisted(value=) 注释的 java.lang.String 的绑定。在 daemons.filerecorder.WriterFactory.textWriter(WriterFactory.java:1)
在 com.google.inject.assistedinject.FactoryProvider2.initialize(FactoryProvider2.java:666) 在 com.google.inject.assistedinject.FactoryModuleBuilder$1.configure(FactoryModuleBuilder. java:335)(通过模块:com.google.inject.util.Modules$OverrideModule -> modules.GuiceConfig -> com.google.inject.assistedinject.FactoryModuleBuilder$1)
有什么想法可以完成这项工作吗?
提前致谢。