2014-06-22 2 views
0

정수 사용자 입력 - 17을 가정 해 봅시다. 이제 17 개의 노드 클래스 개체를 만들고 싶습니다. 그리고 그것들은 node1, node2, ..., node17과 같이 명명됩니다.직렬 이름을 사용하여 클래스 개체를 동적으로 만드는 방법은 무엇입니까?

어떻게 달성할까요?

+0

왜이 작업을 수행 할 수? – kaetzacoatl

+3

오브젝트에는 이름 속성이없는 한 이름이 없습니다. 루프를 사용하여 원하는 이름을 가진 노드 인스턴스 17 개를 만들고 목록 또는 Node [] 배열에 저장합니다. –

+1

@JBNizet은 참조 이름이 node1, node2, ...와 같은 객체를 생성하려고합니다. – Nullpointer

답변

3

하지 마십시오. 당신이 묻는 것은 나쁜 생각입니다.

배열 또는 컬렉션에 여러 개의 새 개체를 추가 할 수 있습니다.
이름에 신경 쓰지 않으면 ArrayList<Node>이 작업을 수행합니다.
이름이 필요하면 HashMap<String, Node> 또는 이와 유사한 키를 만듭니다.

public List<Node> makeThisManyNodes(int count) { 
    List<Node> nodes = new ArrayList<Node>(); 
    for (int i=0; i<count; i++) { 
     nodes.add(new Node()); 
    } 
    return nodes; 
} 

static final String NODE_BASE_NAME = "node_%d"; 

public Map<String, Node> makeThisManyNodes(int count) { 
    Map<String, Node> nodes = new HashMap<String, Node>(); 
    String key; 
    for (int i=0; i<count; i++) { 
     key = String.format(NODE_BASE_NAME, i); 
     nodes.put(key, new Node()); 
    } 
    return nodes; 
} 
관련 문제