How do I restrict object creation not more than 3 in Java class?
Can you give me an idea of how I can to do it?
Instanciate your class via a factory (see design patterns) and limit it to 3 instances using a simple counter.
why not assign limInstance=null ; in else case in getLimInstance() ? in that case it will not provide obj3 duplicates ?
public static synchronized InstanceClass getLimInstance()
{
if(objCount < 3 ){
limInstance = new InstanceClass();
}
else
{
limInstance=null;
}
return limInstance;
}
public class LimitObjectCreationTest {
public static void main(String[] args) {
InstanceClass obj1 = InstanceClass.getLimInstance();
InstanceClass obj2 = InstanceClass.getLimInstance();
InstanceClass obj3 = InstanceClass.getLimInstance();
InstanceClass obj4 = InstanceClass.getLimInstance();
InstanceClass obj5 = InstanceClass.getLimInstance();
InstanceClass obj6 = InstanceClass.getLimInstance();
System.out.println(obj1);
System.out.println(obj2);
System.out.println(obj3);
System.out.println(obj4);
System.out.println(obj5);
System.out.println(obj6);
System.out.println(obj3);
}
}
Result was this :
come.classinstance.InstanceClass@4a5ab2
come.classinstance.InstanceClass@1888759
come.classinstance.InstanceClass@6e1408
null
null
null
come.classinstance.InstanceClass@6e1408