同路径不同导入的处理:如何指定使用Forge的CompoundNBT类
解决同包同名类的导入优先级问题
方法1:直接使用全限定类名调用
代码里无需导入,直接用完整类路径指定Forge的CompoundNBT,编译器会明确识别目标类:
net.minecraft.nbt.CompoundNBT forgeNbt = new net.minecraft.nbt.CompoundNBT(); // 调用Forge专属方法示例 forgeNbt.putUUID("player_id", UUID.randomUUID());
方法2:调整构建依赖的加载顺序
如果用Gradle构建,在build.gradle里把Forge依赖放在Yarn依赖之前,让构建工具优先加载Forge的类文件:
dependencies { // 优先声明Forge依赖 implementation 'net.minecraftforge:forge:1.16.5-36.2.34' // 后声明Yarn相关依赖 implementation 'net.fabricmc:yarn:1.16.5+build.40' }
Maven环境则在pom.xml中把Forge依赖放在Yarn依赖前面,Maven会按声明顺序优先解析靠前的依赖。
方法3:IDE导入别名(辅助区分)
部分IDE(如IntelliJ IDEA)支持给导入类设置别名,方便代码里区分同包同名类:
import net.minecraft.nbt.CompoundNBT as ForgeCompoundNBT; // 通过别名直接调用 ForgeCompoundNBT forgeNbt = new ForgeCompoundNBT();
注意这是IDE层面的语法糖,编译时仍需依赖方法2的依赖优先级配置,二者配合使用效果最佳。
内容的提问来源于stack exchange,提问作者Stronwood
相关产品推荐
相关产品推荐

