IsAssignableFrom повільно?

Використовуйте isInstance або instanceof, які мають подібну продуктивність. isAssignableFrom є трохи повільніше. Відсортовано за продуктивністю: isInstance.30 січня 2009 р

IsAssignableFrom(TypeInfo) Отримує значення, яке вказує, чи можна призначити вказаний об’єкт TypeInfo цьому об’єкту. IsAssignableFrom(Type) Отримує значення, яке вказує, чи можна призначити вказаний тип цьому об’єкту.

instanceof визначається під час компіляції та в класі. isAssignableFrom визначається під час виконання. Іншими словами, instanceof виконується компілятором і класом. isAssignableFrom виконується JVM під час виконання.

Цей метод є динамічним еквівалентом оператора instanceof мови Java. Метод повертає true, якщо вказаний аргумент Object не нульовий і може бути приведений до посилального типу, представленого цим об’єктом Class, без виклику ClassCastException. В іншому випадку він повертає false.

instanceof — двійковий оператор, який ми використовуємо, щоб перевірити, чи об’єкт належить до заданого типу. Результатом операції є або true, або false. Його також називають оператором порівняння типів, оскільки він порівнює екземпляр із типом. Перед приведенням невідомого об’єкта слід завжди використовувати перевірку instanceof.

Метод IsAssignableFrom може бути використовується для визначення того, чи можна призначити екземпляр c екземпляру поточного типу, Цей метод найбільш корисний, коли ви обробляєте об’єкти, типи яких невідомі під час проектування, і допускає умовне призначення, як показано в наступному прикладі. Копія C#.

Оцініть статтю