在java 8 规范的第 4.4.2 段(类似地在其他一些地方)中提到了它
类索引
class_index 项的值必须是 constant_pool 表的有效索引。该索引处的 constant_pool 条目必须是 CONSTANT_Class_info 结构(第 4.4.1 节),表示具有字段或方法作为成员的类或接口类型。
CONSTANT_Methodref_info 结构的 class_index 项必须是类类型,而不是接口类型。
我环顾四周,但据我所知,仅凭字节码是不可能区分接口类型和类类型的,即在运行时针对类加载器解析命名类/接口之前实际检查此要求。
我的假设是正确的,还是我错过了一种方法来单独检查类文件中的单个 CONSTANT_Class_info 的这个要求?