Если это личное и вы не хотите, чтобы оно вызывалось в своем собственном классе, есть простой способ предотвратить такую вещь: не пишите код, который вызывает его более одного раза.Вы автор класса.Зачем вам писать код, чтобы вы сами не могли делать то, что находится под вашим контролем?
Его нельзя вызывать вне класса, не прибегая к размышлению.Если вы не хотите, чтобы он вызывался более одного раза в классе, просто не делайте этого.Зачем писать код для предотвращения действия, которое вы можете не выполнять?
Давайте рассмотрим:
Мы можем ограничить создание объекта класса, сделав его конструктор закрытым.
Конструктор является закрытым, поэтому он не может быть вызван вне класса, если клиент не использует API отражения для устранения ограничений доступа.
Но этот конструктор все еще можно вызыватьот в пределах класса.Есть ли способ предотвратить это в Java?
ОП просит запретить вызов ограниченного конструктора внутри класса.
Если эти два оператора верныПожалуйста, объясните, почему должна быть логика, предотвращающая вызовы конструктора.
Вот типичное использование частного конструктора:
public class Singleton
{
private static final Singleton instance = new Singleton();
public static void main(String[] args)
{
Singleton singleton = Singleton.getInstance();
System.out.println(singleton);
}
private Singleton() {};
public static Singleton getInstance() { return Singleton.instance; }
public String toString() { return Singleton.class.getName(); }
}
Я не вижу смысла запрещать вызовчастному конструктору.