인프런 커뮤니티 질문&답변

dmkim919님의 프로필 이미지
dmkim919

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

상속 (전반전)

메인 메소드의 전달인자로는 String[] args 만 사용하는 이유가 뭔가요?

작성

·

155

0

 main 메소드는

public void main(String[] args) {

처럼 괄호 안에 String[] args만 사용해야 하나요?

String 말고 Int 나 Double 등 다른 자료형을 사용하면 무슨 문제가 있나요?

 

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

자바 프로그램을 명령 창에서 직접 실행시키면서 인자(args) 를 전달하려면 이런 식으로 할 수 있습니다.

java MyClass apple banana orange ...

그러면 main 메소드의 String[] args 에는 각각 다음과 같이 값이 대입되어 프로그램 내에서 사용할 수 있지요.

args[0] = "apple";
args[1] = "banana";
args[2] = "orange";
...

그런데 만약 String[] 이 아닌 Int 나 Double 이라면 위와 같은 형태의 문자열은 올바로 저장을 할 수 없게 될 것입니다. 반면에 "1", "3.14" 와 같이 정수나 실수를 문자열로 감싼 형태라면 코드 내에서 정수나 실수 형태로 형 변환을 할 수 있지요.

가령 자바 프로그램을 이렇게 실행시켰을 때

java MyClass 1 3.14

코드 내에서는 다음과 같이 쉽게 정수, 실수로 변환하여 사용이 가능합니다.

// "1" 을 정수로 변환
int intValue = Integer.parseInt(args[0]);

// "3.14" 를 실수로 변환
double doubleValue = Double.parseDouble(args[1]);

이런 이유로 main 메소드의 전달값은 정수나 실수 대신 문자열 형태로 입력받는 것이 가장 안전하고 합리적인 선택이 아닐까요? 😊

감사합니다.

dmkim919님의 프로필 이미지
dmkim919

작성한 질문수

질문하기