Saturday, March 13, 2010

Generic Singleton blog Java

package com.newproject.model;

import java.util.HashMap;
import java.util.Map;

class Test0
{
int i = 100;
String name = "TestMe0";
}

class Test1
{
int i = 101;
String name = "TestMe1";
}

class Test2
{
int i = 102;
String name = "TestMe2";
}

class Test3
{
int i = 103;
String name = "TestMe3";
}

public class GenericSingleTon
{
T instance;
static Map map = new HashMap();
public T getInstance(Class clazz)
{
if (instance != null)
{
instance = clazz.cast(map.get(clazz));
}
else
{
try
{
instance = clazz.newInstance();
}
catch (InstantiationException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
map.put(clazz, instance);
System.out.println(map);
}
return instance;
}

public static void main(String[] args)
{
GenericSingleTon gs0 = new GenericSingleTon();
gs0.getInstance(Test0.class);
GenericSingleTon gs1 = new GenericSingleTon();
gs1.getInstance(Test1.class);
GenericSingleTon gs2 = new GenericSingleTon();
gs2.getInstance(Test2.class);
GenericSingleTon gs3 = new GenericSingleTon();
gs3.getInstance(Test3.class);
gs0.getInstance(Test0.class);
gs1.getInstance(Test1.class);
System.out.println("**** map" + map);
}
}

No comments:

Post a Comment