2011-02-28 7 views
0

공개 생성자가없는 클래스가 있습니다 (dicts, 프로젝트가 자바 1.4에서 시작되었으므로 enum이 없음).스프링 주석 검사 태그

@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; 
    } 
} 

은 내가

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 할 수있는 클래스를 생성했다

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

처럼 콩을 초기화 할,하지만 난 사용하여 클래스의 설명을 취득합니다 스프링 xml 설정은 <context:annotation-config/>와 같지만, <context:annotation-config/> 클래스의 인스턴스를 얻으려고하는데 public 생성자가 없습니다.

+0

아직 명확하지 않습니다. 질문의 마지막 문장이 혼란 스럽습니다. 그 부분을 명확히해야합니다. – skaffman

답변

0

이 클래스의 인스턴스를 만들 수는 없습니다. 객체를 생성하려면 (봄) 팩토리가 필요합니다.