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