ServiceRegister.java
import java.util.HashMap;
import java.lang.reflect.*;
/**
* 通过register()去注册服务,通过get_service()去获取服务名对应的function
* @author xchen
*
*/
public class ServiceRegister {
int arg1;
int arg2;
HashMap<String, String> hm = new HashMap<>();
void resigte(String servicename)
{
if(hm.containsKey(servicename))
{
System.out.println("service is already exist!do have to resigter");
}else
{
hm.put(servicename,servicename);
}
}
public ServiceRegister(mRequest request) {
this.arg1 = request.arg1;
this.arg2 = request.arg2;
}
Services services = new Services(arg1, arg2);
String getServicebyReflect(String callName) throws ClassNotFoundException
{
Object obj = null;
Method method;
Class[] classes = new Class[2];
classes[0]= int.class;
classes[1]= int.class;
System.out.println("reflect start");
System.out.println("callName:"+callName);
Class<?> rClass = mServer.class;
try {
try {
if(callName.equals("add"))
{
method = rClass.getMethod("add",classes);
System.out.println("call add");
obj=method.invoke(rClass.newInstance(),arg1,arg2);
}else
{
method = rClass.getMethod(callName);
obj = method.invoke(rClass.newInstance());
}
System.out.println("reflect:"+method.invoke(rClass.newInstance()));
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
| InstantiationException e) {
System.out.println("method.invoke err!");
e.printStackTrace();
}
} catch (NoSuchMethodException e) {
System.out.println("No such reflect method");
e.printStackTrace();
} catch (SecurityException