gpt4 book ai didi

java - 协助将 Java 转换为 Objective-C

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:11 26 4
gpt4 key购买 nike

我正在尝试将一些代码从 Java 转换为 Objective-C,但在转换 Java 通用部分时遇到了困难。例如,我相信 Java 中的类声明是说当前类扩展了任何作为 Component 类的子类的类,在 Objective-c 中这是否意味着您只是扩展了 Component 类?

如果有人能提供任何帮助,我们将不胜感激。继续这样做将帮助我转换其他类似的代码片段。谢谢

java :

public class ComponentMapper<T extends Component> {

private Class<T> classType;

public ComponentMapper(Class<T> type, World world) {
this.type = ComponentTypeManager.getTypeFor(type);
this.classType = type;
}

public T get(Entity e) {
return classType.cast(em.getComponent(e, type));
}
}

Objective-C :

@interface ComponentMapper : Component
{
ComponentType* componentType;
EntityManager* entityManager;
id classType;
}

- (id) init:(id) componentType World:(World*) world;
- (id) get:(Entity*) entity; // can this just return Entity instead

@end

@implementation ComponentMapper

- (ComponentMapper*) init:(id) type World:(World *) world {
if (self = [super init]) {
// should be a call to getEntityManager()
self->entityManager = [world entityManager];
self->componentType = [ComponentTypeManager getTypeFor:type];
self->classType = type;
}

return self;
}

- (id) get:(Entity*) entity
{
return [classType cast:[em getComponent:e param1:type]];
}

@end

最佳答案

Java 泛型的创建是为了向集合和参数化类添加编译时类型安全性。在像 Java 这样的静态类型语言中,这可能非常有用,但在动态类型和动态调度的 Objective C 中就没那么有用了。

我建议您在从 Java 转换时简单地删除通用占位符,并将通用返回类型/参数替换为 id

关于java - 协助将 Java 转换为 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8684524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com