2016-10-08 4 views
1

죄송합니다. 다른 제목으로 게시되었지만 확신 할 수는 있지만 찾으려는 데 실패했습니다. Java에서 변수 문자열 이름을 사용하여 클래스의 인스턴스를 만드는 방법은 무엇입니까?

는 다음과 같은 코드를 가지고 말 :

public class Main{ 
    public static void main(String[] args) 
    { 
     String[] names = {"James", "Allison"}; 
     int[] ages = {10, 12}; 

     for (int i = 0; i < names.length; i++) 
     { 
      Item names[i] = new Item(ages[i]);//line that will produce the error 
    } 
} 

class Item{ 
    private int age; 

    Item(int theirAge){ 
     age = theirAge; 
    } 
} 

지금이 코드는 이름에서 유래 중복 변수 오류가 발생합니다을 [I] 변수가 이미 문자열로 정의되어 있지만되고있는 지금 우리는 그것을 정의하기 위해 노력하고있다 항목으로. 나는 꽤 많은 일을 시도했으나 그것을 얻을 수없는 것 같습니다.

+3

변수를 _redefine_ 할 수 없습니다. 'String'으로 정의되어 있다면 그것은 항상'String'이 될 것이고 변경할 수는 없습니다. – tkausl

+0

동일한 범위의 변수를 다시 사용하지 마십시오. 자바는 그러한 것들에 대해 매우 특별합니다. – scrappedcola

+0

@tkausl 그럼 자바에서는이게 가능하지 않니? – Craig

답변

0
public class Main { 
     public static void main(String[] args){ 
      String[] names = {"James", "Allison"};// variable a 
      int[] ages = {10, 12}; 

      for (int i = 0; i < names.length; i++){ 
       Item names[i] = new Item(ages[i]);//variable b 
      } 
} 

class Item{ 
    private int age; 
    Item(int theirAge){ 
    age = theirAge; 
    } 
} 

두 개의 변수가 같은 이름을 가지므로 변수 a와 변수 b가 있습니다. 해결책은 변수 b의 이름을 변경하거나 선언없이 기존 변수를 다시 사용하는 것입니다. 그러나이 경우 A에서 B까지 다른 유형이 있습니다. 기존 변수는 사용할 수 없습니다. 새 Item 객체이지만 다른 이름을 선언하면됩니다.

희망이 있습니다.

관련 문제