当前位置: 技术问答>java相关
java中有像C++中指向函数的指针这种东西吗?
来源: 互联网 发布时间:2017-03-10
本文导语: 我现在想实现如下功能 已知字符串,想调用类中函数名和该字符串内容相同的函数,怎么调用? CLass 类中的getMethod(String name, Class[] parameterTypes)方法的第二个参数如何指定? | 不好意思,...
我现在想实现如下功能
已知字符串,想调用类中函数名和该字符串内容相同的函数,怎么调用?
CLass 类中的getMethod(String name, Class[] parameterTypes)方法的第二个参数如何指定?
已知字符串,想调用类中函数名和该字符串内容相同的函数,怎么调用?
CLass 类中的getMethod(String name, Class[] parameterTypes)方法的第二个参数如何指定?
|
不好意思,说话不客气。试试这个。
try{
try{
paras[0]=int.class;//Class.forName("Integer");
}
catch(Exception e)
{
e.printStackTrace();
}
method1 = c.getMethod("saySomething",paras);
if(method1!=null)
method1.invoke(ct, new Integer[]{new Integer(3)});//new String[]{"Hello"});
}
catch(Exception e)
{
e.printStackTrace();
}
try{
try{
paras[0]=int.class;//Class.forName("Integer");
}
catch(Exception e)
{
e.printStackTrace();
}
method1 = c.getMethod("saySomething",paras);
if(method1!=null)
method1.invoke(ct, new Integer[]{new Integer(3)});//new String[]{"Hello"});
}
catch(Exception e)
{
e.printStackTrace();
}
|
import java.lang.reflect.*;
class den
{
public static void a()
{
System.out.println("a()");
}
public static void main(String []args)throws Exception
{
Class cl=Class.forName("den");
Method m=cl.getMethod("a",null);
m.invoke(null,null);
}
}
class den
{
public static void a()
{
System.out.println("a()");
}
public static void main(String []args)throws Exception
{
Class cl=Class.forName("den");
Method m=cl.getMethod("a",null);
m.invoke(null,null);
}
}
|
import java.lang.reflect.Method;
import java.lang.reflect.*;
public class ClassTest
{
public ClassTest()
{
}
public static void sayHello()
{
System.out.println("hello world");
}
public static void saySomething(String s)
{
System.out.println(s);
}
public static void main(String[] args)
{
ClassTest ct=new ClassTest();
Class c=ct.getClass();
Method[] methods=c.getMethods();
for(int i=0;i
import java.lang.reflect.*;
public class ClassTest
{
public ClassTest()
{
}
public static void sayHello()
{
System.out.println("hello world");
}
public static void saySomething(String s)
{
System.out.println(s);
}
public static void main(String[] args)
{
ClassTest ct=new ClassTest();
Class c=ct.getClass();
Method[] methods=c.getMethods();
for(int i=0;i