4
我希望非编码员能够使用Guice进行依赖注入,从而以最少的代码更改映射新的“测试”类型。我喜欢简单,但不是明显缺乏类型安全。任何建议,使这更好?输入依赖项注入的类型安全枚举
public enum TestType {
TEST_TYPE_1("TEST-1", Test1.class),
TEST_TYPE_2("TEST-2", Test2.class),
TEST_TYPE_3("TEST-3", Test3.class),
TEST_TYPE_4("TEST-4", Test4.class),
TEST_TYPE_5("TEST-5", Test5.class);
private final String testType;
private final Class<TestIF> tester;
private <TestIF> TestType(String testType, Class<TestIF> tester) {
this.testType = testType;
this.tester = (Class<tester.TestIF>) tester;
}
public String toString() {
return this.testType;
}
public Class<TestIF> tester() {
return this.tester;
}
}
“测试”将被实例化这样的:
TestIF tester = Guice.createInjector().getInstance(testType.tester());
tester.execute();
由于您使用'TestIF'作为泛型类型*参数*和具体类(接口)名称,因此您对泛型的使用有点混淆。你能清理这个歧义吗? – 2012-03-30 17:04:57
如果用T替换泛型类型TestIF,会怎样扩展TestIF? – 2012-03-30 17:06:48
@GuillaumePolet是的,我相信应该有所帮助,虽然我需要使用?在构造函数中扩展TestIF。它强制我的测试来实现TestIF,对我来说这应该足够了。 – Dustin 2012-03-30 20:30:37