2 sınıfı nasıl karşılaştırabilirim? Java - Sınıfları karşılaştırmak?
class Sınıfım türü olmasına rağmen deyimi geçer asla eğer aşağıdaki:public void(Class class) {
if (class == MyClass.class){
}
}
2 sınıfı nasıl karşılaştırabilirim? Java - Sınıfları karşılaştırmak?
class Sınıfım türü olmasına rağmen deyimi geçer asla eğer aşağıdaki:public void(Class class) {
if (class == MyClass.class){
}
}
if (clazz.equals(MyClass.class)) {
}
BTW, sınıf ayrılmış bir sözcüktür.
'klass' da yaygın bir var adıdır. – Soup
'Son Sınıf
clazz
olmadığını test etmek MyClass
bir (alt) tip Class.isAssignableFrom
MyClass.class.isAssignableFrom(clazz)
yapmak olduğunu
YaniSınıf veya arabirimin temsil edilip edilmediğini belirler. Bu Sınıf nesnesi tarafından, belirtilen Sınıf parametresiyle temsil edilen sınıf veya arabirimin bir üst sınıfı veya üst yüzeyidir. Öyleyse doğru döner; aksi halde yanlış döndürür. Bu Class nesnesinin bir ilkel türü temsil ediyorsa, belirtilen Class parametresi tam olarak bu Class nesnesiyse bu yöntem true değerini döndürür; aksi halde yanlış döndürür.
Özel olarak, bu yöntem, belirtilen Sınıf parametresiyle temsil edilen türün, bu Sınıf nesnesinde temsil edilen türe, bir kimlik dönüştürmesi veya genişleyen bir referans dönüşümü aracılığıyla dönüştürülüp dönüştürülmeyeceğini sınar. Ayrıntılar için, bkz. Java Dil Özellikleri, bölüm 5.1.1 ve 5.1.4. Her
String
ayrıcaObject
amaString.class.isAssignableFrom(Object.class)
tüm
çünküObject
sString
ler çünkü yanlıştır
Object.class.isAssignableFrom(String.class)
doğrudur.
adı "isAssignableFrom
"
Class1.class.isAssignableFrom(Class2.class)
Yani, biz statik türüne sahip bir alan veya değişken atayabilirsiniz
Class1 x = (Class2) null;
yasal yalnızca, gerçeği geliyor Class1
,'dan gelen ve gelen bir ifadedir..
Class
nesnelerini karşılaştırmak için ==
veya .equals()
kullanabilirsiniz.
Örnek:
class MyClass
{
public static void main (String[] args) throws java.lang.Exception
{
MyClass m = new MyClass();
if (MyClass.class == m.getClass())
{
System.out.println("it worked");
}
}
}
Demo: http://ideone.com/AwbNT
Bir örnek, belirli bir sınıfın ya da alt aitse kontrol etmek instanceof
operatörünü kullanabilirsiniz.
class MyClass{}
class SubClass extends MyClass{}
public static void main(String args[]) {
SubClass object = new SubClass();
if (object instanceof MyClass) {
System.out.println("It works, too");
}
}
Diğer yandan, sadece sahte kodsa, diğer yandan derler. Asıl kodu yapıştırabilir misin? – Cristian