ExpectPlatform
ExpectPlatform
读者应该已经对ExpectPlatform有了一个基本的认识, ExpectPlatform是Architectury Plugin的一个重要注解, 它可以根据平台的不同将一个方法映射到不同的实现上去.
Architectury对ExpectPlatform修饰的方法有一些规范和要求:
被修饰的方法必须是公开且静态的
方法的实现, 命名必须是原方法名+Impl
方法的实现, 应该存放到forge模块, 相同包下名为forge的包中
方法的实现, 应该存放到fabric模块, 相同包下名为fabric的包中
在common模块中创建类Storyteller, 并创建一个公开静态方法, 添加ExpectPlatform注解
在fabric和forge模块中相同位置创建类StorytellerImpl, 为它添加实现
在common包中, 我们就可以按需调用tellStory方法, 编译时Architectury会根据平台的不同补齐方法
此时分别运行Forge和Fabric客户端, 输出的信息应该有所不同.
我们的文件结构应该是这样的:
ExpectPlatform方法: common\src\main\java\trou\arch\Storyteller.java
Forge平台的实现: forge\src\main\java\trou\arch\forge\StorytellerImpl.java
Fabric平台的实现: fabric\src\main\java\trou\arch\fabric\StorytellerImpl.java
IDEA的Architectury插件
Architectury提供了IDEA的插件来帮助我们补全ExpectPlatform的实现
创建ExpectPlatform方法后, 可以自动在正确的位置创建forge和fabric的实现
最后更新于