Java动态调用类中方法代码
程序员文章站
2024-02-25 10:52:58
在java中,调用类的方法有两种方式:对于静态方法可以直接使用类名调用,对于非静态方法必须使用类的对象调用。反射机制提供了比较另类的调用方式,可以根据需要指定要调用的方法,...
在java中,调用类的方法有两种方式:对于静态方法可以直接使用类名调用,对于非静态方法必须使用类的对象调用。反射机制提供了比较另类的调用方式,可以根据需要指定要调用的方法,而不必在编程时确定。调用的方法不仅限于public的,还可以是private的。编写程序,使用反射机制调用math类的静态方法sin()和非静态方法equals()。
思路如下:使用math.class.getdeclaredmethod("sin", double.type);访问指定的方法,其中”sin”表示要访问的方法的名称为sin,double.type表示入口参数的类型为double。
代码如下:
复制代码 代码如下:
import java.lang.reflect.method;
public class dongtai {
public static void main(string[] args) {
try {
system.out.println("调用math类的静态方法sin()");
method sin = math.class.getdeclaredmethod("sin", double.type);
double sin1 = (double) sin.invoke(null, new integer(1));
system.out.println("1的正弦值是:" + sin1);
system.out.println("调用string类的非静态方法equals()");
method equals = string.class.getdeclaredmethod("equals", object.class);
boolean mrsoft = (boolean) equals.invoke(new string("明日科技"), "明日科技");
system.out.println("字符串是否是明日科技:" + mrsoft);
} catch (exception e) {
e.printstacktrace();
}
}
}
效果如图: