문자열 배열 이외의 인수를 주 방법으로 허용 할 수 있습니까? 예를 들어 main(Animals[]args){/*code*/}
과 같은 메소드를 사용할 수 있습니까? 그렇지 않다면 왜 그럴까요?문자열이 아닌 기본 accept 객체 만들기?
답변
아니요 - 진입 점은 항상 헤더가 public static void main(String[] args)
인 메소드입니다 (즉, JVM이이 특정 메소드를 호출 함). 당신은 확실히 방법을 정의 할 수 있습니다.
public static void main(Animals[] args) {...}
그러나이 프로그램을 실행할 때 직접 실행되지는 않습니다.
EDIT : 프로그램이 실행될 때,이 배열은 command-line arguments 포함될 때문에 main
방법은 구체적으로는 문자열 배열 인수를 가지는 이유이다. 직관적으로 문자열은 문자열이어야합니다 (예 : Animal
).
명령 줄에서 입력 할 때 복잡한 형식이 아닌 문자열을 입력하기 때문에.
따라서 인수가 문자열의 포인터 (참조) 배열 (언어에 따라 다름)의 인수 개수를 나타내는 것이 좋습니다. 자바에서는 length
을 사용할 수 있기 때문에 이것이 필요하지 않습니다.
당신이 원하는 것 이유는 확실하지? ..
그것은 단지 임의적 인 생각이었습니다. –
String이 아닌 매개 변수 유형을 사용하는 public static void main을 갖는 것을 막을 수있는 방법은 없습니다. 문제는 JVM이 메소드를 식별하고 호출하기위한 간단한 규칙을 필요로한다는 것입니다. 문자열 배열을 가지고 있습니다. 명령 줄에서 프로그램에 전달할 수 있습니다. JVM은 프로그램 실행을 시작하기 전에 어떻게 그것을 Animal 또는 다른 유형의 배열로 변환할까요?
다음은 다른 매개 변수 유형을 사용하는 main과 JVM에있는 문자열 배열에서 Animal 배열을 생성하는 프로그램 자체의 예제입니다. 물론 두 번째 주 방법에 더 의미있는 이름을 지정하는 것이 좋습니다.
import java.util.Arrays;
public class Bad {
public static void main(String[] args) {
Animal[] animals = new Animal[args.length];
for (int i = 0; i < args.length; i++) {
animals[i] = new Animal(args[i]);
}
main(animals);
}
public static void main(Animal[] args) {
System.out.println(Arrays.asList(args));
}
}
class Animal {
String species;
public Animal(String species) {
this.species = species;
}
public String toString() {
return "Animal: " + species;
}
}
- 1. 문자열이 아닌 System.Xml.XmlDocument 만들기
- 2. 문자열이 아닌 정규식
- 3. jquery droppable accept 부모가 아닌 곳
- 4. "엄격한 표준 : 빈 값에서 기본 객체 만들기"
- 5. 엄격한 표준 : 빈 값에서 기본 객체 만들기
- 6. 빈 문자열이 아닌 널 (null)
- 7. 문자열이 아닌 객체의 ArrayList를 파일
- 8. 이상한 고객의 주소가 accept (..) accept
- 9. HttpWebrequest의 Accept-Encoding, Accept-Charset, Accept-Language 설정에서 예외가 발생합니다.
- 10. 변수를 함께 추가하면 숫자가 아닌 문자열이 반환됩니다.
- 11. AngularJS 지시문 속성의 문자열이 아닌 유형
- 12. C++ : 객체에 대한 공유 포인터가 아닌 공유 객체 만들기
- 13. 리플렉션을 사용하여 객체 만들기
- 14. cfWheels - 객체 관련 객체 만들기
- 15. strtok accept : char * str
- 16. null이 아닌 Null 객체
- 17. 내가 얻는 것은 "입력이 유효한 기본 64 문자열이 아닌 기본 64 문자가 포함되어 있기 때문입니다."
- 18. SIP Accept 및 SIP Accept-Contact의 값
- 19. Java - 객체 컬렉션을 친숙하게 만들기
- 20. shared_ptr 주위에 객체 시스템 만들기
- 21. ASP.NET MVC의 문자열이 아닌 역할 이름은 무엇입니까?
- 22. 문자열이 아닌 개체를 ToolStripDropDownButton에 추가 DropDownItem
- 23. 문자열이 아닌 열거 형의 값을 인덱싱합니다.
- 24. javascript DOMParser 문자열이 아닌 문서를 구문 분석합니다.
- 25. solrj : 문자열이 아닌 필드가있는 POJO 사용
- 26. 개체의 자바 스크립트 인덱스가 문자열이 아닌 int입니다.
- 27. 200 URL 문자열이 아닌 HTTP 코드
- 28. 영어가 아닌 문자열이 대문자인지 확인하는 방법은 무엇입니까?
- 29. c : set을 사용하여 문자열이 아닌 값을 설정합니다.
- 30. 왜`eval`은 문자열이 아닌 경우에도 작동합니까?
왜 자바 메인에는 문자열이 있어야합니까? 다른 유형의 객체는 왜 없습니까? –
@ davidblaine 위의 편집을 참조하십시오. – arshajii