读取生成的源代码
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
类名称映射
由于 J2ObjC 仅转换非 UI 的 Java 类,因此 iOS 应用程序需要直接使用
翻译类。转换后的类是基于 NSObject 根的常规 Objective-C 类,
有助于理解类、方法、参数和头文件名称的转换方式。
Java 使用包来定义命名空间,而 Objective-C 没有包,而是有包
在相关类(如 NSObject 和 NSString)前面放置共享前缀的惯例。接收者
保留 Java 命名空间,软件包名称会映射到驼峰式大小写的前缀。例如:
java.util.List
默认映射到 JavaUtilList
。此默认前缀可以明确设置
使用 j2objc 的软件包前缀选项。
参数名称
Java 根据重载方法的参数类型区分重载方法,而 Objective-C 使用参数
名称。因此,J2ObjC 根据其类型创建参数名称。例如,以下是
对象插入 ArrayList
的开头,以及如何将该列表添加到另一个
列表:
[someList addWithInt:0 withId:object];
[otherList addAllWithJavaUtilCollection:somelist];
每个参数名称均由“with”组成以及其类型。这有点不好看,
在 Objective-C 中,总是会像使用 Java 一样调用该方法。
不过,头文件不会映射其名称,而是使用 Java 源文件路径
以“.h”结尾而不是“.java”。这大大简化了 Xcode 和 Make 等支持工具
但一开始可能会有点令人困惑,因为:
#import "java/util/Date.h"
会声明 JavaUtilDate
类,而非 Date
。
使用翻译后的类
除了奇怪的名称(可以使用软件包前缀简化名称)之外,
翻译类的使用方式与其他 Objective-C 类相同:
#import "java/util/BitSet.h"
...
JavaUtilBitSet *bitset = [[JavaUtilBitSet alloc] init];
[bitset setWithInt:10 withBOOL:YES];
BOOL b = [bitset getWithInt:10];
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-10-14。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-10-14。"],[[["J2ObjC translates non-UI Java classes into NSObject-rooted Objective-C classes, mapping Java packages to camel-cased prefixes for Objective-C class names (e.g., `java.util.List` becomes `JavaUtilList`)."],["Objective-C argument names are generated from Java argument types to handle method overloading, resulting in names like `addWithInt` and `addAllWithJavaUtilCollection`."],["Header file names mirror Java source file paths with a \".h\" extension, so importing \"java/util/Date.h\" declares the `JavaUtilDate` class."],["Translated classes are used like typical Objective-C classes, despite the naming conventions, allowing developers to interact with them using standard Objective-C syntax."]]],["Java package names are converted into camel-cased prefixes for Objective-C classes, such as `java.util.List` becoming `JavaUtilList`. Method parameter names are prefixed with \"with\" followed by the parameter's type, like `addWithInt:withId:`. Header files retain the Java source file path, ending with \".h\", for example, `#import \"java/util/Date.h\"`. Translated classes are used as any other Objective-C classes. Package prefixes can be simplified using package prefix options.\n"]]