instance ofとisAsignable From
2105 ワード
instance ofインスタンスisAsignable Fromは、クラスのオブジェクトに対して
isAsignable From は、クラスクラスクラスクラス1と他のクラスクラスクラスクラスクラス2が同じかどうか、または別のクラスの超クラスまたはインターフェースを判断するために使用されます。 通常の呼び出しフォーマットは
使用者とパラメータは全部です。 java.lang.lass を選択します に対する instance of は、オブジェクトのインスタンスがクラスまたはインターフェースであるかどうかを判断するために使用される、またはそのサブクラスのサブインターフェースの例である。 フォーマットは:
結果:
true true falsetrue
このうちinstance ofは子です。父isAsignable Fromは父です。
私たちはできるだけinstance of演算子を使わないべきです。
できるだけ多态を使ってそれに取って代わるべきです。
isAsignable From は、クラスクラスクラスクラス1と他のクラスクラスクラスクラスクラス2が同じかどうか、または別のクラスの超クラスまたはインターフェースを判断するために使用されます。 通常の呼び出しフォーマットは
Class1.isAssignableFrom(Class2)
使用者とパラメータは全部です。 java.lang.lass を選択します に対する instance of は、オブジェクトのインスタンスがクラスまたはインターフェースであるかどうかを判断するために使用される、またはそのサブクラスのサブインターフェースの例である。 フォーマットは:
oo instanceof TypeName
最初のパラメータはオブジェクトのインスタンス名であり、第二のパラメータは具体的なクラス名またはインターフェース名である。 String、InputStream。public class Test {
public static void main(String[] args) {
List list = new ArrayList();
System.out.println(list instanceof List);
System.out.println(list instanceof ArrayList);
/* System.out.println(list.getClass());
System.out.println(List.class);
System.out.println(ArrayList.class);*/
System.out.println(list.getClass().isAssignableFrom(List.class));
System.out.println(List.class.isAssignableFrom(list.getClass()));
}
}
結果:
true true falsetrue
このうちinstance ofは子です。父isAsignable Fromは父です。
私たちはできるだけinstance of演算子を使わないべきです。
できるだけ多态を使ってそれに取って代わるべきです。
public interface Accounts {
}
public class WaterAccounts implements Accounts {
}
public class ElectricityAccounts implements Accounts {
}
//
public class test {
public static void main(String[] args) {
Accounts accsWater = new WaterAccounts();
Accounts accsElectricity = new ElectricityAccounts();
acceptAcounts(accsWater);
}
// instanceof
public static void acceptAcounts(Accounts accs) {
if (accs instanceof WaterAccounts) {
System.out.println(" ");
} else if (accs instanceof ElectricityAccounts) {
System.out.println(" ");
}
}
//
public static void acceptAcounts(WaterAccounts accs) {
System.out.println(" ");
}
public static void acceptAcounts(ElectricityAccounts accs) {
System.out.println(" ");
}
}