【发布时间】:2021-06-04 15:49:02
【问题描述】:
所以我想为我用java编写的游戏引擎创建一个函数,它将返回一个T类型的对象。
我的函数代码如下:
public <T> T getComponent(Class<T> tClass)
{
for(Component component : components)
{
if(component.getClass() == tClass)
{
return(T)component;
}
}
return(null);
}
这很好用,我可以用
getComponent(Component.class);
但是我希望能够像使用 C# (getComponent<Component>();) 一样调用它,所以我想知道这是否可能。
告诉我它是否可能会很棒,并给我代码来实现它会更好,感谢您所做的任何贡献,即使它只是阅读本文以便更多人看到它。
【问题讨论】:
-
我不相信这是可能的。
-
用英语,你到底想达到什么目的?
-
不可能。 Java 泛型是通过类型擦除实现的,作为对现有语言的 0 成本附加。你需要
tClass来做你正在做的事情。 -
糟糕的标题。重写以总结您的具体技术问题。
标签: java class oop return game-engine