【发布时间】:2018-09-21 11:32:18
【问题描述】:
假设我想用 Java 解决一堆 Project Euler 问题,而不是为每个问题类提供其自己的 main 方法的样板文件,而是继承它并拥有一个“解决”方法。
有没有办法让问题类的名称与解决方案一起打印出来?
我有什么:
abstract class Problem {
private static String problemName = ???
public static void main(String[] args) {
// If I could summon an instance of the sub-class then it would be easy
// Problem p = new ... what?
System.out.println(problemName + ": " + solve());
}
abstract static long solve();
// oops, you can't do abstract static in Java :(
}
然后
public class Euler_001 extends Problem {
static long solve() {...}
}
问题在于,获取 this answer 中给出的类名的各种 hack 返回“Problem”,而不是“Euler_001”。
我想我必须实例化问题类,但是我该怎么做呢?
【问题讨论】:
-
new Euler_001()?
标签: java inheritance java-8 static