我正在开发一个库,我不希望用户直接使用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();
时,编译器会报错。