package d;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Arrays;
import com.sun.org.apache.xpath.internal.functions.FuncBoolean;
public class ClassTest
{
int age;
String name;
public ClassTest(int age,String name)
{
this.age=age;
this.name=name;
}
public static int fun(int a,String b)
{
System.out.println("此方法有个数参数:a="+a+"b="+b);
System.out.println("nihao");
return a;
}
public static void fun()
{
System.out.println("你啊好哦");
}
public static void main(String[] args)
{
String className1=args[0];
System.out.println(className1);
try {
Class cls1=Class.forName(className1);//获取类名cl
Object object=null;
int cout=Integer.parseInt(args[1]);//获取了参数个数
Class [] cl1 =new Class[cout];
//形参列表
Object [] obj1= new Object[cout];//实参列表
if(cout==0)
{
object=cls1.newInstance();
}
for(int i=0;i<cout;i++)
{
if(args[2+i].equals("String"))
{
cl1[i]=String.class;
obj1[i]=args[2+i+cout];
}
if(args[2+i].equals("int"))
{
cl1[i]=int.class;
obj1[i]=Integer.parseInt(args[2+i+cout]);
}
if(args[2+i].equals("float"))
{
cl1[i]=float.class;
obj1[i]=Float.parseFloat(args[2+i+cout]);
}
if(args[2+i].equals("boolean"))
{
cl1[i]=boolean.class;
obj1[i]=Boolean.parseBoolean(args[2+i+cout]);
}
if(args[2+i].equals("char"))
{
cl1[i]=char.class;
obj1[i]=args[2+i+cout].charAt(0);
}
}
Constructor con1=cls1.getConstructor(cl1);
Object result=con1.newInstance(obj1);
System.out.println(result);
String methodName1=args[2+2*cout];//方法名称
int mecount=Integer.parseInt(args[3+2*cout]);//方法的个数
Class []meClasses=new Class[mecount];//方法的形式参数列表
Object [] meObjects=new Object[mecount];//方法的实际参数列表
//转换方法的形式参数列表
for(int i=0;i<mecount;i++)
{
if(args[4+2*cout+i].equals("int"))
{
meClasses[i]=int.class;
meObjects[i]=Integer.parseInt(args[4+2*cout+i+mecount]);
}
if(args[4+2*cout+i].equals("String"))
{
meClasses[i]=String.class;
meObjects[i]=args[4+2*cout+i+mecount];
}
if(args[4+2*cout+i].equals("char"))
{
meClasses[i]=char.class;
meObjects[i]=args[4+2*cout+i+mecount].charAt(0);
}
if(args[4+2*cout+i].equals("boolean"))
{
meClasses[i]=boolean.class;
meObjects[i]=Boolean.parseBoolean(args[4+2*cout+i+mecount]);
}
if(args[4+2*cout+i].equals("float"))
{
meClasses[i]=float.class;
meObjects[i]=Float.parseFloat(args[4+2*cout+i+mecount]);
}
}
Method m1=cls1.getMethod(methodName1, meClasses);
m1.invoke(object,meObjects);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
class Teacher
{
int age;
String name;
public Teacher(int age,String name)
{
this.age=age;
this.name=name;
}
public static int fun(int a,int b)
{
return a+b;
}
}