在class的构造函数能否修改自己为令一个实例
时间:2008-06-11 05:24:08
来源:论坛整理 作者: 编辑:chinaitzhe
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ class A { public static A defaultA = new A(); private A(){ //... } public A(String key){ if(key==null){ this = defaultA //这里始终用一个默认的实例, 把自己变成defautA, 不用生成一个新的实例, 请问如何写? }else{ //这里执行其它代码实例化一个新的对象 } } }
网友回复:
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ //不知道这个能不能满足需求 class A { public static A defaultA = new A(); private A() { // ... } public A(String key) { // .... } public A getInstance(String key) { if (key == null) { return defaultA; } else { return new A(""); } } }
网友回复:绝对不可以this = defaultA这种写法。
楼上的写法可以。但也可以使用单例模式来做。
网友回复:
=====================
不能满足. 有些情况下我要用上我说的功能. 比如:有可能我会在A的构造函数中调用 this = getInstance(xxx);
网友回复:我记得以前在JDK的某个类中好象有类似我说的功能,但又不记得是那个类,我不知自己是否记错了.
网友回复:
我靠楼上的本来就是单例模式,
呵呵用字符串参数决定调用那一个构造函数,很好写,也很简单,祝你成功啊,可以看看1楼的,虽然简单但是说明了问题
网友回复:LZ这样的想法本身就是有问题的,比如说this = getInstance(xxx); 这样根本就是行不通的
在一个等式的左边,java语法要求一定要是个变量~所以还是换个思维方式吧,呵呵
The left-hand side of an assignment must be a variable
网友回复:class A {
public static A defaultA = new A();
private A() {
// ...
}
public A(String key) {
// ....
}
public A getInstance(String key) {
if (key == null) {
return defaultA;
} else {
return new A("");
}
}
单态模式。。。
网友回复:我想先确定有没有直接实现我想法的写法。 假如没有"直接"的方法,其它方法再考虑.
我要 this = defaultA 类似这样的功能。
关键字:class,构造,函数,能否,修改,一个,
上一篇:明天去面试 祝我好运吧
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面