생성된 소스 읽기
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
클래스 이름 매핑
J2ObjC는 UI가 아닌 Java 클래스만 변환하므로 iOS 애플리케이션은
알 수 있습니다. 변환된 클래스는 NSObject 기반의 일반적인 Objective-C 클래스이지만
클래스, 메서드, 매개변수 및 헤더 파일 이름이 변환되는 방식을 이해하는 데 도움이 됩니다.
Java는 패키지를 사용하여 네임스페이스를 정의하는 반면 Objective-C에는 패키지가 없으며 대신
NSObject 및 NSString과 같은 관련 클래스 앞에 공유 접두사를 배치하는 규칙을 따릅니다. 받는사람
자바 네임스페이스를 보존하므로 패키지 이름은 카멜 표기법으로 된 접두사에 매핑됩니다. 예를 들어
java.util.List
는 기본적으로 JavaUtilList
에 매핑됩니다. 이 기본 프리픽스는
j2objc의 패키지 접두사 옵션을
사용해 보세요.
매개변수 이름
Java는 오버로드된 메서드를 인수 유형별로 구분하지만 Objective-C는 인수를 사용합니다.
이름을 지정할 수 있습니다 따라서 J2ObjC는 해당 유형에서 인수 이름을 만듭니다. 예를 들어
객체가 ArrayList
의 시작 부분에 삽입되고 이 목록이 다른 대상에 추가되는 방법
list:
[someList addWithInt:0 withId:object];
[otherList addAllWithJavaUtilCollection:somelist];
각 인수 이름은 'with'로 구성됩니다. 표시됩니다. 다소 보기 좋지 않지만
메서드는 Java에서와 마찬가지로 항상 Objective-C에서도 호출됩니다.
헤더 파일에는 매핑된 이름이 없지만 대신 Java 소스 파일 경로가 있습니다.
'.h'로 끝남 '.java' 대신 '.java'를 사용합니다. 덕분에 Xcode나 Make와 같은 지원 도구가 훨씬 더 쉬워지고
하지만 처음에는 조금 혼란스러울 수 있습니다. 왜냐하면 다음과 같은 이유 때문입니다.
#import "java/util/Date.h"
Date
가 아닌 JavaUtilDate
클래스를 선언합니다.
번역된 클래스 사용
홀수 이름 (패키지 접두어로 단순화할 수 있음) 이외에는
번역된 클래스는 다른 Objective-C 클래스와 마찬가지로 사용됩니다.
#import "java/util/BitSet.h"
...
JavaUtilBitSet *bitset = [[JavaUtilBitSet alloc] init];
[bitset setWithInt:10 withBOOL:YES];
BOOL b = [bitset getWithInt:10];
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-10-14(UTC)
[[["이해하기 쉬움","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"]],["최종 업데이트: 2024-10-14(UTC)"],[[["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"]]