我正在开发一个库,我不希望用户直接使用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);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当用户尝试实例化时MyClass myClass = new MyClass();,编译器将给出错误.
Jon*_*eet 11
你的代码几乎没问题 - 你只需要使你的create方法保持静态,并给它们一个返回类型:
public static MyClass createMyClassInt(int i) {
return new MyClass(i);
}
public static MyClass createMyClassDouble(double d) {
return new MyClass(d);
}
Run Code Online (Sandbox Code Playgroud)
该方法必须是静态的,这样,来电不就必须有,以创建一个新的实例,以实例的引用:)
编辑:如评论中所述,它可能也值得上课final.
| 归档时间: |
|
| 查看次数: |
1841 次 |
| 最近记录: |