Проверка конструктора не принимает параметров с помощью getConstructor () - PullRequest
0 голосов
/ 15 декабря 2018

Мне нужно проверить несколько вещей в классе, и одна из них - убедиться, что конструктор этого класса не принимает параметров, и намекнуто использовать getConstructor()

Я проверил онлайн, но я 'У меня проблемы с пониманием того, как это сделать.

Можете ли вы, ребята, помочь мне в любом случае?Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Вы можете использовать getParameterCount() на объекте конструктора.Ниже приведен общий код метода, который выполняет ту работу, которую вы хотите:

private static boolean checkDefaultConstructor(Class<?> cl) {
  Constructor<?>[] cons = cl.getConstructors();
  boolean defaultConstructor = false;
  for (Constructor<?> con : cons) {
    if (con.getParameterCount() == 0)
      defaultConstructor = true;
  }
  return defaultConstructor;
}
0 голосов
/ 15 декабря 2018
try {
      Constructor<?>[] ctors = MyClass.class.getConstructors();
      if (ctors.length == 0) {
        //no constructor returned means only implicit no arg constructor available
      }
      for (Constructor<?> c : ctors) {
        if (c.getParameterTypes().length == 0) {
          //explicit no arg constructor present 
        }
      }
    }
    catch (SecurityException e) {
      // TODO either LOG the exception or re-throw, but not both
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...