我在 Java 中找到了以下代码,解释了如何使用 guice 很好地将配置参数注入为带注释的字符串参数。https://github.com/google/guice/wiki/FrequentlyAskedQuestions
我想做同样的事情,但在斯卡拉。你会怎么做?
请注意,我在寻找一个解决一般特征/类的方法。什么东西
trait Foo[T <- SomeOtherType] {}
class FooImpl[T <- SomeOtherType](val url: String) extend Foo[T] {}
我研究了辅助注射,但无法解决我的问题。
任何帮助都将不胜感激。谢谢
你可以用Scala做,就像用Java做一样。首先,定义注释:
/**
* Annotates the URL of the foo server.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@BindingAnnotation
public @interface FooServerAddress {}
注意,这是Java代码;你不能在Scala中定义运行时注释。
然后绑定一个用此注释注释的常量:
bindConstant().annotatedWith(classOf[FooServerAddress])
最后,你注射它:
class FooImpl[T] @Inject() (@FooServerAddress val url: String) extends Foo[T] {}
目标类的泛型在这里并不重要。
还有,如果把Guice和Scala一起用,可以考虑用Scala-Guice;除此之外,它还允许您省略这些笨拙的。
具体代码如下: 请大神帮忙看下,谢谢。
我有一个名为的文件,它看起来像这样: 我想把那个文件作为字符串数组读入。这实际上在一个包中起作用: 我已经检查了每个导入,每个导入都被导入文件以外的其他东西使用。 在另一个包中,它忽略字符串插值: 在控制台中生成此输出: 唯一提到该文件的是 但是,将其复制到
我试图编写一个Java例程,从值计算数学表达式,如下所示: 我想避免很多if-then-else语句。我怎么能这么做?
我使用JSCH-SSH库在“shell”通道中执行命令,但无法找到一种方法来做两件事:- 1)如何查找命令是否在远程unix box上完全执行? 2)如何在String中捕获命令输出,而不是在System.out控制台上打印? 下面是我的代码片段,它可以很好地在系统上显示shell命令输出。出来 注意:我不想使用“exec”通道,因为它为每个命令启动一个新进程,并且不记得导出的“session”变
在Dart中提供枚举之前,我编写了一些繁琐且难以维护的代码来模拟枚举,现在我想简化它。我需要以字符串形式获取枚举的名称,例如可以用Java完成,但不能。 例如,小测试代码片段返回'day。星期一“在每种情况下,我想要的是”星期一” 我是否正确,要获得“星期一”,我需要解析字符串?
本文向大家介绍如何在Python中以字符串形式获取函数名称?,包括了如何在Python中以字符串形式获取函数名称?的使用技巧和注意事项,需要的朋友参考一下 每个函数都有一个名为__name__的属性。我们可以访问该属性并获取函数的名称。例如: 这将给我们输出: