,이 같은 테이블을 초기화 :
private String [][] table_of_classifiers = null;
정말. 이것은 변수의 초기화 및 선언입니다. 은을 가리키고 "2d 배열", "테이블"또는 더 정확하게 "배열 배열"문자열을 가리킬 수 있습니다.
변수가 null 일 수 있다는 사실을 가지고 작업하지 않는 한, null
으로 초기화하는 것은 일반적으로 좋지 않습니다. null을 확인하기 위해 추가 작업이 필요하기 때문입니다. 예를 들면 :
String[][] a;
// ...
String b = a[0][0];
이 a
하지 않는 한 평균 시간이 초기화되지 않았습니다, 컴파일되지 않습니다. 이것은 잠재적 인 버그를 피할 수 있기 때문에 좋은 일입니다.
String[][] a = null;
// ...
String b = a[0][0];
그러나 이것은 컴파일 할 것이다 것입니다 당신은 실제로 "널 포인터 예외"로 변수에게 실제 배열, 프로그램 것 "충돌"을 지정하는 것을 잊었다하거나 확인하기 위해 추가 코드/일을 추가해야하는 경우 null
.
는이 같은 내용을 채우기 : 당신은 여기에 아무것도 "충전"되지
String [][] table_of_classifiers = {
{"x1","x","x","x","x"},
{"x2","x","x","x","x"},
{"x3","x","x","x","x"},
{"x4","x","x","x","x"},
{"x5","x","x","x","x"},
{"x6","x","x","x","x"},
};
. 채워지는 것에 대해서는 먼저 존재해야하지만 아직 아무것도 창조하지 않았습니다.
여기서 동일한 이름의 두 번째 변수를 선언합니다. 첫 번째 변수와 다른 범위에있는 경우에만 가능하며,이 경우 원래 변수를 "숨기거나"("섀도 잉")합니다. if 원래이 새로운 범위에서 액세스 할 수있었습니다. 당신이 (로컬) 첫 하나를 두 번째 테이블 덮어 쓰기를 추측 수
는하지만, 그게 내가하고 싶은 것을하지 물론이다. 내가 뭘 잘못 했니?
"첫 번째"테이블은 무엇입니까? 지금까지는 첫 번째 테이블이 없었으며 첫 번째 변수 만있었습니다. 다른 사람들은 라인의 시작 부분에 "선언"인 String[][]
을 사용하지 않고 "테이블"을 원래 변수에 할당하기 위해해야 할 일을 보여주었습니다.
그렇지 않으면 실제로 무엇을 하려는지 설명하지 않았기 때문에 "잘못하고있다"고 말할 수 없습니다.
표의 크기는 처음부터 알 수 없습니다.
아니야? 왜 어떻게/왜 당신은 배열 리터럴을 사용하고 있습니까? 리터럴 배열은 고정 "사전 채우기"로 고정 된 크기의 배열을 만드는 데 사용됩니다.
"처음"은 정확히 무엇을 의미합니까? 프로그래밍 할 때 (컴파일하는 동안) 또는 프로그램을 시작할 때 (런타임에) 크기가 알려지지 않았습니까?
런타임 중에 배열의 크기를 얻을 경우에 당신은 new
과 정상적인 배열을 만들 수 있습니다
int a = ...;
int b = ...; // Get the sizes from somewhere, e.g, user input
String[][] table_of_classifiers = new String[a][b];
// Now you have an "empty" table
하면 런타임 동안 크기 "변경"다음 - 당신은 실제로 시도하는 내용에 따라 do - 배열이 잘못된 도구이므로 ArrayList
과 같이 List
구현을 사용해야합니다.
"eval"에 대해서는 다른 사람들과 마찬가지로 Java는 "eval"을 기본적으로 불가능하게 만드는 컴파일 된 언어입니다. 당신이 암시하는 것을 달성하기 위해 "반영"또는 Class
유형의 사용이 있지만, 실제로 달성하고자하는 것을 훨씬 더 광범위하게 설명 할 필요가 있다면, 여기에서 당신을 도울 수 있습니다.
반사 및 CLass 유형은 복잡한 문제이며, 가장 기본적인 Java 개념으로 분명히 고심하고 있다는 것을 고려하면 원하는 작업을 수행 할 수있을 때까지 갈 길이 멀다.
[Java에 eval() 함수가 있습니까?] (http://stackoverflow.com/questions/2605032/is-there-an-eval-function-in-java) – Raedwald
OP가 두 번째 질문을 [새 게시물] (http://stackoverflow.com/questions/8666935/implemention-of-eval-in-java) – Raedwald