package com.powernode.reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class TestReflection
{
public static void main(String[] args)
{
try
{
Class c = Class.forName("com.powernode.reflect.SomeService");
Method method = c.getDeclaredMethod("doSome",String.class, int.class);
//调用哪个对象,调那个方法,传什么参数,返回什么结果
Constructor constructor = c.getDeclaredConstructor();
SomeService someService = (SomeService)constructor.newInstance();
//invoke需要执行对象,可变形参
System.out.println(method.invoke(someService, "jack", 1));
Method method1 = c.getDeclaredMethod("doSome",String.class);
System.out.println(method1.invoke(someService, "Rose"));
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
}
package com.powernode.reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class TestReflection
{
public static void main(String[] args)
{
try
{
Class c = Class.forName("com.powernode.reflect.SomeService");
Method method = c.getDeclaredMethod("doSome",String.class, int.class);
//调用哪个对象,调那个方法,传什么参数,返回什么结果
Constructor constructor = c.getDeclaredConstructor();
SomeService someService = (SomeService)constructor.newInstance();
//invoke需要执行对象,可变形参
System.out.println(method.invoke(someService, "jack", 1));
Method method1 = c.getDeclaredMethod("doSome",String.class);
System.out.println(method1.invoke(someService, "Rose"));
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
}
package com.powernode.reflect;
public class Test
{
public static void main(String[] args)
{
SomeService someService = new SomeService();
someService.doSome();
System.out.println(someService.doSome("hello"));
System.out.println(someService.doSome("hello", 1));
//调用方法四要素,第一调用哪个对象,第二要素,调用那个方法,第三传什么参数,第四执行方法后的返回结果
//即使是使用反射机制调用方法,也要具有这四个要素
}
}
package com.powernode.reflect;
public class Test
{
public static void main(String[] args)
{
SomeService someService = new SomeService();
someService.doSome();
System.out.println(someService.doSome("hello"));
System.out.println(someService.doSome("hello", 1));
//调用方法四要素,第一调用哪个对象,第二要素,调用那个方法,第三传什么参数,第四执行方法后的返回结果
//即使是使用反射机制调用方法,也要具有这四个要素
}
}
package com.powernode.reflect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SomeService
{
private static final Logger logger = LoggerFactory.getLogger(SomeService.class);
public void doSome()
{
logger.info("doSome()");
}
public String doSome(String s)
{
logger.info("doSome(String s)");
return s;
}
public String doSome(String s,int i)
{
logger.info("doSome(String s,int i)");
return s + i;
}
}
package com.powernode.reflect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SomeService
{
private static final Logger logger = LoggerFactory.getLogger(SomeService.class);
public void doSome()
{
logger.info("doSome()");
}
public String doSome(String s)
{
logger.info("doSome(String s)");
return s;
}
public String doSome(String s,int i)
{
logger.info("doSome(String s,int i)");
return s + i;
}
}