我有一些多绑定代码,看起来像这样:
bind(SuperClass.class).annotatedWith(Names.named("Name1"))
.to(SubClass1.class).in(Scopes.SINGLETON);
bind(SuperClass.class).annotatedWith(Names.named("Name2"))
.to(SubClass2.class).in(Scopes.SINGLETON);
...another 20 lines of this stuff
我也有一些代码,看起来像这样:
multiBinder.addBinding().to(SomeClass1.class)
.in(Scopes.SINGLETON);
multiBinder.addBinding().to(SomeClass2.class)
.in(Scopes.SINGLETON);
...another 20 lines of this stuff too
Guice中有没有一种方法可以减少行数/重复次数?
编辑:不寻找像“使用for循环并迭代一组键”这样的答案。
你可以稍微扩展一下DSL。
mySpecialBinding("Name1", SubClass1.class);
mySpecialBinding("Name2", SubClass2.class);
// ...
void mySpecialBinding(String name, Class<? extends SuperClass> clazz) {
bind(SuperClass.class).annotatedWith(Names.named(name))
.to(clazz).in(Scopes.SINGLETON);
multiBinder.addBinding().to(clazz)
.in(Scopes.SINGLETON);
}
编辑:为了澄清一点,我对此表示怀疑,因为通道似乎在做关闭通道的工作,但当然,我不能在任何goroutine中关闭通道,因为所有例程共享同一个通道。因此,我使用来模拟一个进行某种“缓冲关闭”的通道。 Edit2:原始代码实际上并不起作用,因为有时来自例程的信号在它刚刚对执行int之前被读取。需要一个“清理”循环。
我希望停止对以下模块使用语句,因为Node version 11现在支持ES6,但除了作为语句外,我找不到任何关于如何编写以下语句的文档: 是不是和和一样? 例如我只见过: 对于我只看到:
我一次又一次地进行这种测试,我觉得有一种更优雅的方法来做。 你能帮我吗?
除了把它们全部输入外,还有没有更好的方法在字符串中列出它们?
我试过这种格式 但这似乎不起作用。
问题内容: 我正在编写一个一次性Java程序,以将CSV文件中的一堆行添加到MySQL数据库。是否有任何Java类/工具包可以帮助您解决此问题?会逃脱必要字符等的东西吗?(例如,准备好的陈述) 还是我应该自己写语句,像这样: 问题答案: 如果使用的是JDBC,请使用PreparedStatement。此类将为您节省手动转义输入的麻烦。 该代码基本上看起来像这样(完全是从内存中开始的-希望我不要忽略