要求以特定顺序实现Java功能

时间:2012-09-03 18:41:38

标签: java

我在Java类中创建了一个未实现函数的层次结构,并且我想跟踪已经实现的函数,可以实现这些函数。

作为一个例子,这里有一长串未实现的函数依赖项,我想以编程方式分析,以确定哪些函数可以实现(给定已经实现的函数)。

//requires the functions b and c
public static void a(){

}

//does not require any functions to be implemented before being implemented
public static void b(){

}

//requires the function b
public static void c(){

}

public static void d(){ //requires the function a

}

public static void e(){ //requires the function a and c

}

public static void f(){ //requires the function a and c

}

//requires the functions a and f
public static void g(){

}

有没有办法确定在这里可以实现哪些上述功能(给定已经实现的功能列表)?在Javascript中,解决这个问题很简单(因为它可以在函数的原型中设置每个函数的属性),但在Java中,我还没有找到一个简单而简洁的解决方案。

2 个答案:

答案 0 :(得分:0)

在您的示例中,即使是空体,您的所有方法也都有实现。要检测没有实现的方法,你需要将它们标记为抽象(你的类也是抽象的),你需要编写一些反身代码。如果要内省每个方法中的代码,可以处理其堆栈跟踪。看看这里:How do I find the caller of a method using stacktrace or reflection?

答案 1 :(得分:0)

界面的想法似乎非常适合你正在做的事情。这是一个接口层次结构,用于跟踪函数ad

interface HasA extends HasB, HasC {
    public static void a();
}

interface HasB {
    public static void b();
}

interface HasC extends HasB {
    public static void c();
}


interface HasD extends HasA {
    public static void d();
}

实现HasA的类(例如)除非定义方法abc,否则不会编译。