String name; if (args.length > 0) name = args[0];
1
zhao1014 OP 注释是从命令行参数读取类名,但是我不懂为什么会这么写,还请大佬们赐教。
|
2
codingadog 2019-09-13 12:09:51 +08:00 via Android
这是命令行执行的时候,main 方法里读取第一个参数吧
|
3
lhx2008 2019-09-13 12:11:30 +08:00 via Android
换下行就可以看懂了,arg[0] 一般是程序自己
|
4
gIrl1990 2019-09-13 12:14:40 +08:00
??? 这能读取到吗? args[0]不是第一个参数吗?
|
5
zcmxw1 2019-09-13 12:19:54 +08:00 via Android
没有参数时的,防止报错吧?
|
6
fzdfengzi 2019-09-13 12:25:45 +08:00 via iPhone
main 函数的参数 args 接受输入参数。好像没毛病
|
7
CEBBCAT 2019-09-13 12:29:06 +08:00
name 永远赋值为可执行文件的文件名吧,因为 args 一般至少有一个参数,就是程序自己的文件名
|
8
fishCatcher 2019-09-13 12:49:48 +08:00 via iPhone 1
从回复来看我站的水平有待提高啊?
|
9
GrayXu 2019-09-13 12:58:10 +08:00
请问 java 如何运行程序?不就是 java <public class name>嘛。。
所以读取类名没毛病 |
10
Creamliu 2019-09-13 12:59:36 +08:00 via Android
这是赋值入参的第一个参数
|
11
zhao1014 OP @CEBBCAT @Creamliu @GrayXu @codingadog @fishCatcher @fzdfengzi @gIrl1990 @lhx2008 @zcmxw1
主函数已上传附言,麻烦大家了! |
12
ffkjjj 2019-09-13 14:06:13 +08:00
args[0] 就是启动的时候读取命令行传的参数啊。。如果没有传就会提示你手动输入一个
比如 java Test 123 args[0] //123 |
14
Sharuru 2019-09-13 14:07:35 +08:00 via Android
注释里不是写了从命令行或用户输入获得参数了吗?
args 就是你命令行的传入参数。 比如程序叫 tools.jar ,if 里的语句就是为以下运行场景(命令行)服务的:java -jar tools.jar sample.class,此时 args0 就是 sample.class 如果你这样(用户输入)运行:java -jar tools.jar 那么,else 语句就会起效,等待用户输入 className |
16
gIrl1990 2019-09-13 14:45:35 +08:00
“从命令行或用户输入中读取类名” 他这个“类名”不是你当前启动程序的类名。
比如你运行 java ClassA 这个类名不是 ClassA。 而是指你输入后拿去反射用的类名 比如你运行 java ClassA ClassB 那就是指 ClassB |