Bir yol var C taklit 'dostum' Java kavramı nedir?
Diğer sınıfının bir alt sınıfı yapmak zorunda kalmadan başka bir paket içinde bir sınıfın halka açık olmayan yöntemler erişimi olan bir paketi, bir Java sınıfı yazmak istiyorum. Bu mümkün mü?
CEVAP
İşte C arkadaşım mekanizması çoğaltmak için JAVA kullandığım küçük bir hile.
Bir sınıf var diyelim Romeo
ve başka bir sınıf 3**. Farklı paketler (aile) nefrete sebep verirler.
Romeo
5* Juliet
*istiyor ve Juliet
Romeo
cuddle
onun izin vermesini istiyor.
C Juliet
Romeo
beyan ederim (sevgilim) friend
ama java diye bir şey yok.
Burada sınıfları ve hile :
Bayanlar önden :
package capulet;
import montague.Romeo;
public class Juliet {
public static void cuddle(Romeo.Love l) {
l.hashCode();
System.out.println("O Romeo, Romeo, wherefore art thou Romeo?");
}
}
Juliet.cuddle
public
yöntem ama Romeo.Love
bir seçmen gerek. Kullandığı bu Romeo.Love
gibi bir "imza güvenlik" sağlamak için sadece Romeo
çağrı, bu yöntem ve sadece arama hashCode
hakkında bu kadar çalışma zamanı fırlatır NullPointerException
null
.
Şimdi çocuklar :
package montague;
import capulet.Juliet;
public class Romeo {
public static class Love { private Love() {} }
private static Love love = new Love();
public static void cuddleJuliet() {
Juliet.cuddle(love);
}
}
23 ** sınıf ortak olduğunu, ancak onun oluşturucu private
. Bu nedenle herkes bunu anlayabilir, ama sadece Romeo
inşa edebilir. Asla kullanılan Romeo.Love
yalnızca bir kez oluşturulur ve iyileştirme etkisi yok yani statik bir referans olarak kullanın.
Bu nedenle, Romeo
olabilir cuddle
Juliet
ve sadece o olabilir çünkü sadece o inşa ve erişim Romeo.Love
örneği, hangi tarafından gerekli Juliet
cuddle
onun (ya da onu başka bir tane sana bir NullPointerException
).
Java jenerik olarak silme kavramı nedi...
ETMENİZ için Java karşılığı nedir?...
C Çifti eşdeğer<L,R> Java nedir?...
Java singleton deseni uygulamak için e...
Yumuşak bir referans ve Java zayıf bir...