java中怎么定义一个类使他只能被实例化五次
5个回答
展开全部
一个静态计数器就行了
protected static int intInstanceNum = 0;
init函数,注意线程安全
synchronized public boolean init() {
if (intInstanceNum < 5) {
intInstanceNum++;
return true;
} else {
return false;
}
}
构造函数调用 init:
if (!init()) {
throw ... // any exception you want
}
如果需要的话,可以做一个工厂类,把生成的实例保存起来
等等
需求的进一步变化还是挺多的
protected static int intInstanceNum = 0;
init函数,注意线程安全
synchronized public boolean init() {
if (intInstanceNum < 5) {
intInstanceNum++;
return true;
} else {
return false;
}
}
构造函数调用 init:
if (!init()) {
throw ... // any exception you want
}
如果需要的话,可以做一个工厂类,把生成的实例保存起来
等等
需求的进一步变化还是挺多的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Test{
private Test(){};
private static Test[] test;
public static Test[] getInstance(){
if(test == null){
test = new Test[5];
for(int i = 0;i < test.length; i++){
test[i] = new Test();
}
}
return test;
}
}
这样能满足要求不?
private Test(){};
private static Test[] test;
public static Test[] getInstance(){
if(test == null){
test = new Test[5];
for(int i = 0;i < test.length; i++){
test[i] = new Test();
}
}
return test;
}
}
这样能满足要求不?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设类型为A
A[] as = new A[5];
int i = 0;
public A getInstance(){
i = (i++)%5;
if(A[i] == null){
A temp = new A();A[i] = temp;}
return A[i];
}
A[] as = new A[5];
int i = 0;
public A getInstance(){
i = (i++)%5;
if(A[i] == null){
A temp = new A();A[i] = temp;}
return A[i];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
3楼正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么需求?!mark。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询