接口介绍
给定一个类或接口的全限定名,返回其完整继承/实现层级树 — 向上链(父类、父接口),向下链(子类、所有实现),含每一跳的关系类型(extends / implements)与类型种类(class / interface / abstract_class)。
工具名
get_type_hierarchy_by_class_name
背景与目标
类型层级是程序分析中很多推理的基础:
- 多态分析:看到
validator.validate(...) 想知道 validator 可能是哪些子类
- 安全审计:发现一个
BaseFilter,需要看它的所有子 Filter 是否都正确处理了输入
- 重构分析:删一个父类前看影响面
也是调用图分析(callees / 上游链路)的多态展开依赖。
输入参数
| 参数 |
类型 |
必填 |
说明 |
class_full_name |
string |
是 |
类/接口全限定名 |
repository_path |
string |
是 |
仓库本地绝对路径 |
direction |
enum(up, down, both) |
否 |
默认 both。up=父类/接口链,down=子类/实现链 |
max_depth |
int |
否 |
默认 -1(不限) |
include_jdk_types |
bool |
否 |
默认 false。是否在向上链里把 java.lang.Object 等标准库类型也列上 |
输出结构
{
"root": "com.example.RequestValidator",
"kind": "interface",
"direction": "both",
"ancestors": [
{
"full_name": "com.example.Validator",
"kind": "interface",
"depth": 1,
"relation": "extends"
}
],
"descendants": [
{
"full_name": "com.example.impl.JsonRequestValidator",
"kind": "class",
"depth": 1,
"relation": "implements",
"is_abstract": false
},
{
"full_name": "com.example.impl.AbstractValidator",
"kind": "abstract_class",
"depth": 1,
"relation": "implements",
"is_abstract": true
},
{
"full_name": "com.example.impl.specialized.AbConcreteValidator",
"kind": "class",
"depth": 2,
"relation": "extends",
"parent_in_chain": "com.example.impl.AbstractValidator"
}
],
"total_ancestors": 1,
"total_descendants": 3
}
验收标准
预估工作量
7-10 人日
接口介绍
给定一个类或接口的全限定名,返回其完整继承/实现层级树 — 向上链(父类、父接口),向下链(子类、所有实现),含每一跳的关系类型(extends / implements)与类型种类(class / interface / abstract_class)。
工具名
get_type_hierarchy_by_class_name背景与目标
类型层级是程序分析中很多推理的基础:
validator.validate(...)想知道validator可能是哪些子类BaseFilter,需要看它的所有子 Filter 是否都正确处理了输入也是调用图分析(callees / 上游链路)的多态展开依赖。
输入参数
class_full_namerepository_pathdirectionmax_depthinclude_jdk_typesjava.lang.Object等标准库类型也列上输出结构
{ "root": "com.example.RequestValidator", "kind": "interface", "direction": "both", "ancestors": [ { "full_name": "com.example.Validator", "kind": "interface", "depth": 1, "relation": "extends" } ], "descendants": [ { "full_name": "com.example.impl.JsonRequestValidator", "kind": "class", "depth": 1, "relation": "implements", "is_abstract": false }, { "full_name": "com.example.impl.AbstractValidator", "kind": "abstract_class", "depth": 1, "relation": "implements", "is_abstract": true }, { "full_name": "com.example.impl.specialized.AbConcreteValidator", "kind": "class", "depth": 2, "relation": "extends", "parent_in_chain": "com.example.impl.AbstractValidator" } ], "total_ancestors": 1, "total_descendants": 3 }验收标准
预估工作量
7-10 人日