Merriam Webster describes invoke
like this:
: говоря (кто-то или что-то) в попытке заставить людей чувствовать себя определенным образом или иметь определенную идею в своем уме
: сослаться на (что-то) в поддержку ваши идеи
: использовать (закон, право и т.д.)
Так что да, я бы сказал, вы можете вызвать кон structor так же, как вы можете вызвать метод. Но, как the java specifcation говорит
Конструкторы никогда не вызывается вызова метода выражения
так Конструкторы могут вызываться только путем создания объекта:
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class InvokeConstructor {
public InvokeConstructor() {
System.out.println("constructor1");
}
public InvokeConstructor(final boolean unused) {
System.out.println("constructor2");
}
public static void main(String[] args) {
new InvokeConstructor();
new InvokeConstructor(false);
// And using reflection:
try {
Constructor<InvokeConstructor> constructor1 = InvokeConstructor.class.getConstructor();
constructor1.newInstance();
Constructor<InvokeConstructor> constructor2 = InvokeConstructor.class.getConstructor(Boolean.TYPE);
constructor2.newInstance(Boolean.FALSE);
} catch (NoSuchMethodException e) {
e.printStackTrace(); // TODO: implement catch
} catch (InvocationTargetException e) {
e.printStackTrace(); // TODO: implement catch
} catch (InstantiationException e) {
e.printStackTrace(); // TODO: implement catch
} catch (IllegalAccessException e) {
e.printStackTrace(); // TODO: implement catch
}
}
}
Это просто споря семантику. Но FWIW, JLS говорит о «вызывающих конструкторах» (например, http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.8). –
Вы не вызываете конструкторы, как обычные методы, но оператор 'new' вызывает его. – 5gon12eder