Я разрабатываю библиотеку, и я не хочу, чтобы пользователь создавал экземпляр класса непосредственно с ключевым словом new
, вместо этого у меня есть специальные методы для создания объектов. Таким образом, возможно, если пользователь создает экземпляр класса с использованием ключевого слова new
, что компилятор дает ошибку. Для примера:Как сделать класс не позволяющим создавать новый объект (новый объект())
public class MyClass {
private MyClass(int i) { }
public MyClass createMyClassInt(int i) {
return new MyClass(i);
}
private MyClass(double d) { }
public MyClass createMyClassDouble(double d) {
return new MyClass(d);
}
}
Таким образом, когда пользователь пытается создать экземпляр MyClass myClass = new MyClass();
, компилятор выдаст сообщение об ошибке.
Вы пробовали код? – gefei
Это то, что он делает сейчас. Можете ли вы сказать, как этот код не делает то, что вы хотите? (Вы можете отформатировать его более красиво;) –
@ Rp-: не нужно, если есть уже другие (частные) конструкторы. –