gpt4 book ai didi

java - 如何声明抽象类的所有子类都将实现 main ?

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:20 28 4
gpt4 key购买 nike

我有一个名为 Trader 的抽象类,它的作用类似于具有服务器(StockMarket)的客户端,我想在 Trader 类中声明,从它继承的所有类都需要实现一个主入口点,以便它们可以运行。

问题是如果我写:

public static abstract void main(String[] args) throws Exception;

它给出了只允许可见性修饰符的错误。但是,如果我删除静态修饰符,那么它就不能作为允许其运行的主入口点。

那么如何声明一个抽象类的所有子类都必须实现一个main方法呢?

最佳答案

你不能。

我会做的是在 Trader 中声明一个抽象的非静态方法:

public abstract void run(String[] args) throws Exception;

然后声明一个单独的主类来实例化一个实例,并调用 run 方法:

class RunTrader {
private static final String DEFAULT_CLASS = "...";

public static void main(String[] args) {
try {
String className = System.getProperty("main-trader-class", DEFAULT_CLASS);
Class<Trader> traderClass = (Class<Trader>)Class.forName(className);
Trader trader = traderClass.newInstance();
trader.run(args);
} catch (Exception e) {
// handle the exception
}
}
}

关于java - 如何声明抽象类的所有子类都将实现 main ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44105885/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com