【发布时间】:2021-01-14 01:55:15
【问题描述】:
我正在编写一个管理员类,我正在编写的所有其他类都打算继承自该类。在这种情况下,我希望类继承一个 main 方法,并且我也计划实现一个工厂。我必须编写一些系统输出,其中包括各种类名,例如 charcount、linecount 等。为此,我需要能够获取当前的类名,因为该方法将被多个类继承。有没有办法在java中做到这一点?您可以在下面找到我要执行的 sysout 示例:
System.out.println("Usage: className <src>\n");
提前谢谢大家,感谢任何帮助!
编辑: 大家好!
很抱歉我之前没有说清楚,我将在下面展示整个代码并尝试进一步解释我的想法。所以我所做的本质上是制作一个检查文件是否存在的主要方法,如果文件存在,它将尝试执行某个功能(所有这些都将在命令行中)。我正在练习工厂设计模式(我以前从未做过的事情)。我将使用 main 方法的执行部分来调用一些工厂(尚未创建)来创建管理员子类的对象并返回文件中的字符数和文件中的行数之类的东西。上面的问题是指这个主要方法的一部分,它将打印子类的用法。因此,例如,我将从管理员继承 charcount,因为检查文件的过程在管理员的主要方法中,但是当我打印使用消息时,我不希望它打印“Usage: Administrator”,而是“Usage :字符数“。我希望这能解决问题,再次抱歉我上面解释得多么糟糕,你可以在下面找到我所拥有的代码:
public class Administrator
{
private static File srcFile = null;
private static String srcFilename = "<srcFilename>";
public static void main(String[] args) throws IOException
{
//check the command line
if(args.length != 1)
{
System.out.println("Usage: charcount <src>\n");
return;
}
// Check if arguments are valid, if the srcFile exists, and if can create the dstFile.
if (args[0] != null)
{
//check <src>
srcFilename = args[0];
System.out.println( ": srcFilename '" + srcFilename + "'");
srcFile = new File(srcFilename);
if(!srcFile.canRead())
{
System.out.println("charcount: cannot open srcFile '" + srcFilename + "'");
return;
}
}
else
{
System.out.println("charcount: [OK] srcFilename = '" + srcFilename + "'");
}
}
public static int execute() {return 0;}
}
【问题讨论】:
-
请提供您到目前为止所做的工作,并说明您想要实现的具体内容。一般
object.getClass().getName();返回object的类名。 -
“这个方法”是实例方法还是静态方法?
-
它是一个静态的,我的想法是主要方法在我所有的类上都非常相似,除了执行部分,所以我计划为每个类编写不同的执行然后通过该执行程序的文件名并显示结果。
标签: java string class inheritance polymorphism