2011-07-26 14 views
2

String型の引数のみを許可し、その他のプリミティブ型は許可しない理由を知りたい。開発者がそのようにして作成した理由なぜJavaメインメソッドの文字列型引数のみ

+5

プログラムに別のタイプを渡すにはどうすればよいですか? 'someprogram.exe 1 somestring 26-07-2011'は、すべての文字列です。 –

答えて

11

ほとんどすべての一般的なオペレーティングシステムは、新しく起動されるプロセスの引数として単純な文字列のみを提供します。

mainで同じことをすると、最も一般的なインターフェイスが単純に反映されます。

3

引数はコマンドライン引数、文字列はユーザ​​ーがコマンドラインで入力したものです。私には妥当だと思われる。

0

Javaのmainメソッドのシグネチャは、C/C++開発者がJavaを簡単に取り込めるように、C++(コードの型をより安全にするために少し改良が加えられています)から取得されました。 C++のmainは、Cから継承されました。これはおそらくBとBCPLの先任者から継承された(または少なくとも影響を受けた)ものでした。おそらく他の答えで説明された理由のために文字列パラメータを使用しました。

+0

重要な変更があることに注意してください。Javaの 'main'メソッドには戻り値がありません! –

2

コンソール(たとえば、CMD.EXE)から引数を渡すときは、入力したコマンドは実際には文字列(例:「myApp.jar -jar javaの」&あなたARG1、ARG2 ...など)である

数値引数、文字列引数を入力することができるので、(ほぼ)全てが文字として解釈できるので、文字列引数はすべて文字列として受け取ります。

文字列を整数、浮動小数点数などのように解析できますが、問題はどこにあるのですか?

1

プロセスに渡す引数は、いずれもStringで表すことができます。これは他のプリミティブ型には当てはまらないので、Stringは実際には唯一のオプションです。

関連する問題