2011-02-03 3 views
0

각 반복마다 변수 이름을 변경하고 싶습니다. 생성 된 노드의 수가 동적으로 변하기 때문에자바의 루프 안에서 변수 이름을 바꿀 수 있습니까

1 차원 배열을 사용했지만 null 포인터를 반환했습니다. 루프 내부에 동적 변수 이름을 변경하는 자바 또는 JSP에서 다른 방법이 있나요 이미 내장 자료 구조

public class GenericTree<T> { 

private GenericTreeNode<T> root; 

public GenericTree() { 
    super(); 
} 

public GenericTreeNode<T> getRoot() { 
    return this.root; 
} 

public void setRoot(GenericTreeNode<T> root) { 
    this.root = root; 
} 

을 사용하고

GenericTreeNode<String> **root1[]** = null; 
    for(int i=0;i<10;i++) 
    { 
     String str="child"+i; 
     System.out.println(str); 

     **root1[i]** =new GenericTreeNode<String>(str); 
    } 

를 따를 때 내 코드입니다. 그래서 당신은 배열 변수를 생성하고

root1[i] =new GenericTreeNode<String>(str); 

를 null로 초기화 그러나 여기 당신이 배열의 인덱스에 값을 할당

GenericTreeNode<String>[] root1 = null; 

:

+2

변수 이름을 변경하는 것이 좋은 생각이 아니며 가능한 한 Java로만 생각할 수도 있습니다. –

+0

물론 그것은 널 포인터입니다! 'root1 [] = null;이라고 생각합니까? 어쨌든 불가 능할뿐만 아니라, "각 반복마다 변수 이름 변경"은 의미가 없습니다. 당신이하려는 일을 우리에게 말해야합니다. –

+0

당신은 그것을 할 수 없습니다. 진짜 문제가 뭐니? – birryree

답변

3
GenericTreeNode<String> root1[] = null; 

이 줄은 이것에 동일한 .

NullPointerException !!을 던져야합니다 !!

은 그 방법은 다음과 같습니다

GenericTreeNode<String>[] root1 = new GenericTreeNode<String>[10]; 
2

아니, 당신은 자바에서 변수 이름을 변경할 수 없습니다.

배열에 값을 넣으려고했는데 배열이 null 인 경우 배열을 사용할 때 NullPointerException이 발생합니다. 당신은 요소의 오른쪽 번호, 배열을 초기화 할 수 있습니다

int length = 10; 
GenericTreeNode<String>[] root1 = new GenericTreeNode<String>[length]; 
for (int i = 0; i < length; i++) { 
    String str = "child" + i; 
    System.out.println(str); 

    root1[i] = new GenericTreeNode<String>(str); 
} 
2

당신은 아마이 일을 의미 :

GenericTreeNode<String> root1[] = new GenericTreeNode<String>[10]; 
for(int i=0;i<10;i++) 
{ 
    String str="child"+i; 
    System.out.println(str); 

    root1[i] = new GenericTreeNode<String>(str); 
} 

"변수 이름을 변경"할 필요가 없습니다.

1

아니요, 변수 이름을 변경할 수 없습니다. 2 차원 배열과 같은 또 다른 메서드를 사용하여 반복 할 때 다른 "변수"를 만듭니다.

1

배열로 GenericTree를 시작할 수 없습니다. 나중에 나는 문제를 해결하기 위해 벡터를 사용했다.

관련 문제