2012-07-10 6 views
0

문자열 배열을받는 메소드가 있으며 적절한 이름을 가진 객체를 만들어야합니다. 예를 들어동적으로 객체를 생성합니다.

:

public class temp {  
    public static void main(String[] args){ 

    String[] a=new String[3]; 
    a[0]="first"; 
    a[1]="second"; 
    a[2]="third"; 
    createObjects(a); 

    } 
    public static void createObjects(String[] s) 
    { 
    //I want to have integers with same names 
    int s[0],s[1],s[2]; 
    } 
} 

내가받는 경우 ("하나", "둘") 내가 작성해야합니다

Object one; 
Object two; 

내가 ("소년", "여자")을받은 경우 I 다음을 작성해야합니다.

Object boy; 
Object girl; 

도움이 필요하십니까?

+0

아마도 Java에서 제공되는 * 수집 프레임 워크 *를 사용하지 않았을 것입니다. – Lion

+1

"적절한 이름"이란 무엇을 의미합니까? 이름 속성을 가진 객체를 만들려고합니까? 아니면 실제로 "first", "second"등의 클래스를 갖고 싶습니까? 지금까지 뭐 해봤 어? –

+1

"int"가 개체가 아닙니다! – doNotCheckMyBlog

답변

7

java에서 할 수 없습니다. 대신 Map을 만들 수 있습니다. 키가 문자열이고 값이 객체입니다.

+0

이지만 어떤 이름으로 개체를 만들지는 모르겠지만 실행시에만 – temcheg

+0

지도가 런타임에 채워집니다. – vainolo

0

먼저 Integers의 문자열 표현으로 키를 포함하는 Map을 만듭니다.

public class Temp { 

static Map<String, Integer> lMap; 

static { 

    lMap = new HashMap<String, Integer>(); 
    lMap.put("first", 1); 
    lMap.put("second", 2); 
    lMap.put("third", 3); 
} 

public static void main(String[] args) { 
    Map<String, Integer> lMap = new HashMap<String, Integer>(); 
    String[] a = new String[3]; 
    a[0] = "first"; 
    a[1] = "second"; 
    a[2] = "third"; 

    Integer[] iArray=createObjects(a); 
    for(Integer i:iArray){ 

     System.out.println(i); 
    } 

} 

public static Integer[] createObjects(String[] s) { 
    // I want to have integers with same names 
    Integer[] number = new Integer[s.length]; 
    for (int i = 0; i < s.length; i++) { 
     number[i] = lMap.get(s[i]); 
    } 
    return number; 
} 

} 
+0

당신은 나를 오해합니다 :) 정수는 예입니다. 내 말은 : 받는 경우 ("one", "two") 작성해야 함 : Object one; 개체 2; 받은 경우 ("소년", "소녀") 반드시 만들어야합니다 : 소년 소년; 개체 소녀; – temcheg

관련 문제