我正在开发一个库,我不希望用户直接用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-:如果已经有其他(私有)构造函数,则不需要。 –