tl; dr:如何在不替换此类的情况下向现有类添加方法?
说明:
当我在 JShell 中运行以下命令时:
public class TestClass {}
打印以下输出:
created class TestClass
再次运行此命令会给出以下输出:
modified class TestClass
让我们用一种方法创建类,如下所示:
public class TestClass {
public static void testMethod1() {
System.out.println("In testMethod1");
}
}
值得一提的是,输出与之前的类覆盖略有不同:
replaced class TestClass
运行testMethod1
成功结束,并In testMethod1
在控制台打印。
现在我想在TestClass
不丢失的情况下将新方法添加到现有的testMethod1
. 所以我运行以下代码段:
public class TestClass {
public static void testMethod2() {
System.out.println("In testMethod2");
}
}
...并且testMethod1
丢失了,因为整体TestClass
已被替换。
如何在不覆盖现有类的情况下向现有类添加新方法?如果我写了 10 种方法怎么办?我是否应该在要添加到类的新方法旁边写下现有方法?JShell 不应该以警告的形式提示用户要替换的类吗?
任何提示或帮助表示赞赏。