当您汇总Flag[T]
的实例时,您最终会像Flag[_]
或Flag[Any]
一样滚动
val seq: Seq[Flag[_]] = new Flag[Int](5) :+ new Flag[MyFlag](someinstance) :+ new Flag[String]("stringValue")
所以在Flag
内,我添加了一个
def genericType(implicit m: Manifest[T]): Class[_] = m.runtimeClass
我们在Flag
班级内也有一个
def value: T = { //the value }}
所以当我循环遍历Flag[_]
时,我需要将值和classOf[T]
传递给模板函数
def someTemplateFunction[F](clazz: Class[F], value: F)
我怎样才能做到这一点?我应该使用[_]
,[Any]
还是[Nothing]
?
我终于得到了一些编译但必须使用Java函数才能到达那里的东西(即将测试它,因为我不确定它是否会起作用):
public class BindGuiceByType {
public static void bind(Binder binder, String flagName, Object value, Class clazz) {
Key key = Key.get(clazz, new FlagImpl(flagName));
binder.bind(key).toInstance(value);
}
}