确定被叫类

时间:2016-06-16 12:21:18

标签: java command-line-interface

我有一个在命令行中运行的Java程序,它包含一组我编写的类,这些类都包含公共代码元素。

让我们假设结构如下:

package.AbstractParent  (contains: static void main)
package.ClassA          (extends: AbstractParent)
package.ClassB          (extends: AbstractParent)

当我执行以下操作时:java package.ClassAstatic void main内的AbstractParent被调用。

如果不在static void mainClassA中放置ClassB,我是否有办法确定在AbstractParent内调用哪个?

例如,当我运行java package.ClassA时,AbstractParent将确定ClassA。当我运行java package.ClassB时,AbstractParent将确定ClassB

1 个答案:

答案 0 :(得分:0)

找到答案相当快,但谷歌搜索很麻烦,所以我会留在这里。

最后,我能够使用System.getProperty("sun.java.command")来解决课程问题。但是,它确实包含所有后续参数:

className = System.getProperty("sun.java.command");
className = className.substring(0, className.indexOf(" "));

从上下文中,它返回package.ClassApackage.ClassB