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