Oluşturulan Kaynakları Okuma

Sınıf adı eşlemesi

J2ObjC yalnızca kullanıcı arayüzü olmayan Java sınıflarını çevirdiğinden, bir iOS uygulamasının çevrilmiş sınıflarla doğrudan çalışması gerekir. Çevrilmiş sınıflar normal NSObject köklü Objective-C sınıflarıdır ancak sınıfın, yöntemin, parametrenin ve başlık dosyası adlarının nasıl dönüştürüldüğünü anlamaya yardımcı olur.

Java, ad alanlarını tanımlamak için paketleri kullanır. Objective-C'de ise bir paket bulunmaz ve bunun yerine ilgili sınıfların (ör. NSObject ve NSString) önüne paylaşılan ön ek getirilir. Java ad alanlarını korumak için paket adları, develerle başlayan bir ön ekle eşleştirilir. Örneğin, java.util.List varsayılan olarak JavaUtilList ile eşlenir. Bu varsayılan ön ek, j2objc'in paket ön eki seçenekleri kullanılarak açık bir şekilde ayarlanabilir.

Parametre adları

Java, aşırı yüklenen yöntemleri bağımsız değişken türlerine göre ayırt ederken Objective-C bağımsız değişken adlarını kullanır. Bu nedenle J2ObjC, türlerinden bağımsız değişken adları oluşturur. Örneğin, bir ArrayList öğesinin başına nasıl nesne eklendiğini ve bu listenin başka bir listeye nasıl eklendiğini görebilirsiniz:

[someList addWithInt:0 withId:object];
[otherList addAllWithJavaUtilCollection:somelist];

Her bağımsız değişken adı "with" ve türünden oluşur. Bu alışılmadık bir şey olsa da Java ile aynı şekilde Objective-C'de aynı yöntemin çağrılmasını sağlar.

Başlık adları

Ancak başlık dosyalarının adları eşlenmez ancak bunun yerine ".java" yerine ".h" ile biten Java kaynak dosya yolu olur. Xcode ve Make gibi destek araçları çok daha kolay hale gelir, ancak ilk etapta biraz kafa karıştırıcı olabilir çünkü:

#import "java/util/Date.h"

Date öğesini değil JavaUtilDate sınıfını belirtir.

Çevrilmiş sınıfları kullanma

Çevrilmiş adlar (paket önekleriyle basitleştirilebilir) dışında, çevrilmiş sınıflar diğer tüm Hedef C sınıfları gibi kullanılır:

#import "java/util/BitSet.h"
...
  JavaUtilBitSet *bitset = [[JavaUtilBitSet alloc] init];
  [bitset setWithInt:10 withBOOL:YES];
  BOOL b = [bitset getWithInt:10];