Sınıf adı eşlemesi
J2ObjC yalnızca UI harici Java sınıflarını çevirdiğinden, bir iOS uygulamasının doğrudan çeviri dersleri. Çevrilmiş sınıflar normal NSObject-rooted Objective-C sınıflarıdır ancak sınıf, yöntem, parametre ve başlık dosyası adlarının nasıl dönüştürüldüğünü anlamanıza yardımcı olur.
Java, ad alanlarını tanımlamak için paketleri kullanırken Objective-C'de paket yoktur ve onun yerine bir
bir ortak önek koyma ilkesidir. Alıcı:
Java ad alanlarını koruduğunda, paket adları büyük/küçük harf içeren önekle eşlenir. Örneğin,
java.util.List
varsayılan olarak JavaUtilList
ile eşlenir. Bu varsayılan ön ek açıkça ayarlanabilir
j2objc'in paket öneki seçeneklerini kullanarak oluşturun.
Parametre adları
Java, aşırı yüklenen yöntemleri bağımsız değişken türlerine göre ayırt ederken Objective-C ise bağımsız değişkeni kullanır
gösterir. Bu nedenle J2ObjC, türlerinden bağımsız değişken adları oluşturur. Örneğin, burada bir
ArrayList
öğesinin başına yerleştirildiği ve bu listenin daha sonra başka bir
liste:
[someList addWithInt:0 withId:object];
[otherList addAllWithJavaUtilCollection:somelist];
Her bağımsız değişken adı "with" kelimesinden oluşur. ve türünü ekleyelim. Bu biraz çirkindir ancak aynı yöntemi, Java'da olduğu gibi Objective-C'de her zaman çağrılır.
Başlık adları
Ancak başlık dosyalarının adları eşlenmez, bunun yerine Java kaynak dosya yolu vardır ".h" ile biten ".Java" yerine. Bu da Xcode ve Make gibi destekleyici araçları çok daha kolay hale getirir. ancak ilk başta biraz kafa karıştırıcı olabilir, çünkü:
#import "java/util/Date.h"
JavaUtilDate
sınıfını belirler, Date
sınıfını tanımlamaz.
Çevrilmiş sınıfları kullanma
Tek adlar (paket önekleri ile basitleştirilebilir) dışında, çevrilen sınıflar diğer Objective-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];