2011-02-28 123 views
0

我有類,沒有公共構造函數(字典,項目開始寫在Java 1.4中,沒有枚舉)。Spring註釋掃描標籤

@SpringContextAvailableDict(alias="a") 
public class Class1 extends Dict<Object> { 

    protected String code; 
    protected String title; 


    public final static Class1 NULL = new Class1(null, null, Dict.NAME_NULL); 
    public final static Class1 FOO = new Class1("0", "e", "name1"); 
    public final static Class1 BAR = new Class1("1", "j", "name2",); 

    private Class1(String code, String letterCode, String title) { 
     this.code = code; 
     this.title = title; 
    } 
} 

我想初始化豆狀

<bean parent="dict-wrapper-value" p:value="a_FOO"/> 

我創建類

public class StringToDictConverter extends PropertyEditorSupport { 

protected Map<String, Class<?>> dicts = new HashMap<String, Class<?>>(); 

public StringToDictConverter() throws ClassNotFoundException{ 
    ClassPathScanningCandidateComponentProvider scanner 
       = new ClassPathScanningCandidateComponentProvider(false); 
    scanner.addIncludeFilter(
        new AnnotationTypeFilter(SpringContextAvailableDict.class)); 
    for (BeanDefinition bd : scanner.findCandidateComponents("exmpl/*")){ 
    // puting bd's class to dicts on key annotation parament 'alias'; 
    } 
} 

@Override 
public void setAsText(String text) throws IllegalArgumentException { 
     String[] name = text.split("_", 2); 
    setValue(dicts.get(name[0]).getField(name[1]).get(new Object())) 
} 
} 

與dict什麼轉換字符串,使用字典的類,但我想用得到類描述彈簧xml配置像<context:annotation-config/>,但<context:annotation-config/>試圖獲得類的實例,它沒有公共構造函數。

+0

還不清楚。這是你問題的最後一句令人困惑的問題,你需要澄清那部分。 – skaffman 2011-03-01 10:29:14

回答

0

你不能簡單地創建這個類的實例。你需要一個(Spring)工廠來創建對象。