From 3972d943c11f6e88f0fb5e7aac2a70380e3124e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E5=AE=87=E8=88=AA?=
<16423805+liu-yuhangs@user.noreply.gitee.com>
Date: Fri, 5 Dec 2025 10:32:25 +0800
Subject: [PATCH] 1
---
TODO.md | 2 +-
pom.xml | 25 +++++++++++++++++++
src/main/java/com/example/climenu/Main.java | 23 ++++++-----------
.../java/com/example/climenu/MenuCommand.java | 8 +++++-
4 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/TODO.md b/TODO.md
index 93a4492..3fc6758 100644
--- a/TODO.md
+++ b/TODO.md
@@ -26,6 +26,6 @@ Caused by: java.lang.ClassNotFoundException: picocli.CommandLine$Help$Ansi
```
## 问题2
-目前在交互式菜单中,输入选项2的工作流程和直接使用命令行 `-f 5`的工作流程是不一致的,将这两个流程统一起来。
+**目前在交互式菜单中,输入选项2的**工作流程和直接使用命令行 `-f 5`的工作流程是不一致的,将这两个流程统一起来。
修复上述问题。
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 8e594bb..10ff3ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,6 +39,31 @@
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.6.0
+
+
+
+ com.example.climenu.Main
+
+
+
+ jar-with-dependencies
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/example/climenu/Main.java b/src/main/java/com/example/climenu/Main.java
index 7724999..48d914b 100644
--- a/src/main/java/com/example/climenu/Main.java
+++ b/src/main/java/com/example/climenu/Main.java
@@ -30,23 +30,22 @@ public class Main {
switch (input) {
case "1":
// 模拟执行 -t 命令
- System.out.println("🕒 " + CommandLine.Help.Ansi.AUTO.string("@|bold,green " + java.time.LocalDateTime.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "|@"));
+ String[] timeArgs = {"-t"};
+ new CommandLine(new MenuCommand()).execute(timeArgs);
break;
case "2":
System.out.print("请输入要计算的斐波那契数列项数 N: ");
try {
String fibInput = scanner.nextLine().trim();
int n = Integer.parseInt(fibInput);
- if (n <= 0) {
- System.err.println(CommandLine.Help.Ansi.AUTO.string("@|red 请输入一个正整数。|@"));
- break;
- }
- System.out.println(CommandLine.Help.Ansi.AUTO.string("@|yellow 斐波那契数列(前" + n + "项):|@"));
- for (int i = 0; i < n; i++) {
- System.out.println(" " + CommandLine.Help.Ansi.AUTO.string("@|cyan " + fibonacci(i) + "|@"));
- }
+ // 使用统一的方式处理,直接调用MenuCommand中的call方法
+ CommandLine cmd = new CommandLine(menuCmd);
+ cmd.parseArgs("-f", String.valueOf(n));
+ menuCmd.call();
} catch (NumberFormatException e) {
System.err.println(CommandLine.Help.Ansi.AUTO.string("@|red 输入无效,请输入一个数字。|@"));
+ } catch (Exception e) {
+ System.err.println(CommandLine.Help.Ansi.AUTO.string("@|red 输入无效:" + e.getMessage() + "|@"));
}
break;
case "3":
@@ -61,10 +60,4 @@ public class Main {
System.out.println(); // 空行分隔
}
}
-
- // 为了在 Main 中复用,将 fibonacci 方法也移到这里,或在 MenuCommand 中设为 public static
- private static long fibonacci(int n) {
- if (n <= 1) return n;
- return fibonacci(n - 1) + fibonacci(n - 2);
- }
}
\ No newline at end of file
diff --git a/src/main/java/com/example/climenu/MenuCommand.java b/src/main/java/com/example/climenu/MenuCommand.java
index 22b3841..8518c39 100644
--- a/src/main/java/com/example/climenu/MenuCommand.java
+++ b/src/main/java/com/example/climenu/MenuCommand.java
@@ -58,8 +58,14 @@ public class MenuCommand implements Callable {
System.out.println(Ansi.AUTO.string("@|italic 提示: 运行 --help 查看详细帮助信息。|@"));
}
- private long fibonacci(int n) {
+ // 将此方法设为public,以便在Main类中可以直接调用
+ public long fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
+
+ // 添加获取fibonacciCount的方法
+ public Integer getFibonacciCount() {
+ return fibonacciCount;
+ }
}
\ No newline at end of file
--
Gitee