如何根据命令行输入值的数量调用对应Java构造方法?
解决方案
你的需求完全不需要用Scanner读取控制台输入,更不需要Timer超时,直接利用Java程序的命令行参数就能实现,这是最简单的方式。
核心思路
Java程序运行时传入的参数会自动存入main方法的args数组中:
- 执行
java ValueM 5时,args数组长度为1,元素是["5"] - 执行
java ValueM 5 6时,args数组长度为2,元素是["5", "6"]
通过判断数组长度,就能直接调用对应的构造方法。
修改后的完整代码
public class ValueM { // 单参数构造方法 public ValueM(int num) { System.out.println("调用单参数构造方法,参数:" + num); // 这里编写你的业务逻辑 } // 双参数构造方法 public ValueM(int num1, int num2) { System.out.println("调用双参数构造方法,参数:" + num1 + ", " + num2); // 这里编写你的业务逻辑 } public static void main(String[] args) { // 判断命令行参数数量 if (args.length == 1) { // 把字符串参数转为int类型 int num = Integer.parseInt(args[0]); new ValueM(num); } else if (args.length == 2) { int num1 = Integer.parseInt(args[0]); int num2 = Integer.parseInt(args[1]); new ValueM(num1, num2); } else { System.out.println("请输入1个或2个数值参数,格式:java ValueM [数值1] [数值2]"); } } }
运行说明
- 编译代码:
javac ValueM.java - 单参数运行:
java ValueM 5 - 双参数运行:
java ValueM 5 6 - 如果输入参数数量不符,会输出提示信息
内容的提问来源于stack exchange,提问作者roblov Cave
相关产品推荐
相关产品推荐

