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