1

我正在为 Java 创建一个类图抽屉,我需要查看标准 Java 类以检查两个类是否具有共同的祖先(一些附加功能)。我正在考虑创建一个包含类层次结构的字典,但我不知道如何创建它。我发现的第一件事是从文本文件创建它,它将使用来自那里的信息:http: //docs.oracle.com/javase/6/docs/api/allclasses-frame.html。但我认为这不是最好的解决方案。还有其他想法吗?

4

1 回答 1

0

将 jython 用于这些目的。

使用类路径中的 jar-file 或 classes-folder 启动 jython。

然后做下一个:

#    import your java package by this way
import com.yourcomp.yourpackage as yourpackage 

#   gets superclass
def get_ancestor_4_class( c ):
    if not c or not c.__bases__: return java.lang.Object
    return c.__bases__[0].__name__

#   there all class to ancestor
#   mapping will be placed        
class2ancestor = {}

#   list (generator) of all classes in yourpackage 
yourclasses = (eval('yourpackage.%s' % classname) \
    for classname in dir( yourpackage ))

#    showtime!
for c in yourclasses:
    class2ancestor[ c.__name__ ] = get_ancestor_4_class( c ).__name__

你需要的所有结果class2ancestor

于 2013-04-12T06:46:19.433 回答