我在Java-Project a Framework(Ashley)中使用。 要使用它,我经常要编写类似的东西:
entityEngine.getSystem(RenderingSystem.class).setProcessing(true);
虽然RenderingSystem是我创建的东西,但getSystem是它自己的框架的一部分。查看该方法的实现,它看起来像:
/**
* Quick {@link EntitySystem} retrieval.
*/
@SuppressWarnings("unchecked")
public <T extends EntitySystem> T getSystem(Class<T> systemType) {
return systemManager.getSystem(systemType);
}
现在,即使我可以使用gradle编译和运行代码,我的IDE(IntelliJ)也会显示错误并显示以下警告:
我错了什么,或者我怎么能至少抑制这些警告?
以下是我的类“RenderingSystem”的定义:
public class RenderingSystem extends EntitySystem {...}
答案 0 :(得分:0)
您的方法接受类型T
的类T extends EntitySystem>
RenderingSystem
必须扩展EntitySystem
(或EntitySystem
是一个接口时实现)才能与该方法兼容
答案 1 :(得分:0)
虽然RenderingSystem是我创建的东西,但getSystem是一个Part 框架itselve。查看该方法的实现吧 看起来像那样:
如果您传递了自己项目中定义的RenderingSystem
课程,并且无法将其传递给getSystem()
方法,则表示RenderingSystem
并非来自EntitySystem
{1}}。
您应该扩展/实现框架的EntitySystem
类,以使getSystem()
方法可以作为参数传递给您自己的类。