Eu tenho este método getService que retorna um item.
Este item é um serviço do mesmo tipo da classe passada como parâmetro dentro do array ServiceType[].
um exemplo de chamada do método getService seria:
TransactionManager txm = null;
Class serviceTransaction [] = {TransactionManager.class};
txm = (TransactionManager) LookupUtils.getService("url", serviceTransaction);
//outro exemplo:
JavaSpace space = null;
Class serviceSpace [] = {JavaSpace.class};
txm = (JavaSpace) LookupUtils.getService("url", serviceSpace);
Vejam que eu sempre tenho que realizar a conversão de tipo quando o uso o getService.
O que eu queria fazer era realizar a conversão já no método getService, para evitar de ter que realizar a conversão toda vez que chamo o método getService. Seria algo como uma conversão automática.
Ele reconheceria o contido em ServiceType[] e realizaria a conversão.
não tem como fazer isso com aqueles e aquelas coisas que surgiram no java 5?
como seria?
public class LookupUtils {
public static Object getService(String url, Class ServiceType[]) throws Exception{
Exception ex = null;
Object item = null;
if (System.getSecurityManager() == null)
System.setSecurityManager(new RMISecurityManager());
try {
LookupLocator locator = new LookupLocator(url);
ServiceRegistrar registrar = locator.getRegistrar();
ServiceTemplate template = new ServiceTemplate(null, ServiceType, null);
item = registrar.lookup(template);
} catch (MalformedURLException mue) {
ex = mue;
} catch (RemoteException re){
ex = re;
} catch (Exception e){
e.printStackTrace();
}
if (item == null)
throw ex;
return item;
}
}