Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Java obyektda metod mavjudligini tekshirish

+3 ovoz
77 marta ko‘rilgan
so‘radi 25 dekabr, 16 Bilmasvoy (904 bal)

Menda Mail objekti bor, uning getMessage metodi bor ekanini tekshirmoqchiman. Qaydany qilsam bo`ladi?

PHP da quyidagicha qilar edim:

method_exists(mail, 'methodName');

Shuni Java da qanday qilsam bo`ladi?

Quyidagicha qilib ko`rdim:

public Sendable processMail(Sendable mail) {
    // berilgan obkeytda getMessage metodi bor ekanini tekshirmoqchiman
    try{
        mail.getClass.getMethods("getMessage", /* shu yerda nima yozishim kerak ?*/);
    }
    catch(NoSuchMethodError e){
        // ignore
    }
}

hech nima o`xshamadi. Nimadur yetishmayapti menimcha. Nima qilsam bo`ladi?

1 ta javob

+1 ovoz
javob berdi 25 dekabr, 16 Saidolim (3,566 bal)

Quyidagicha qilib ko`ring

import java.lang.reflect.Method;

boolean hasMethod = false;
Method[] methods = mail.getClass().getMethods();
for (Method m : methods) {
  if (m.getName().equals("getMessage")) {
    hasMethod = true;
    break;
  }
}

2 variant

Method m = null;
try {
  m = Sendable.class.getMethod("getMessage");
  // metod bor
} catch (Exception e) {
  // metod yo`q 
}

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...