JAVA反射中通过Class.forname()如何带参数的方法怎么赋值和调用呀?

 我来答
skyshowshow
2013-04-01 · 超过12用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:20.1万
展开全部

没明白你说的什么意思。Class.forname()获取类。如果想调用这个类的带参数的方法:

String clsstr = "package.classname";

Class t = Class.forName(clsstr); //获取所给包名下的类

t.newInstance();//实例化获取的类

Method method = t.getMethod("methodName",String.class);//获取方法名称为methodName,参数为一个String类型的公有方法

method.invoke(t,"display");//调用此带有一个String参数的函数

 

上图:

匿名用户
推荐于2018-03-13
展开全部
要调用带参数的方法invoke方法举个例子:package com;
import java.lang.reflect.Method;
public class InvokeMethod {
public static void main(String args[]){
try
{
//动态加载Student类
Class student = Class.forName("com.Student");
//获取Student类名称为printInfo的方法
Method method1 = student.getMethod("printInfo");
//调用printInfo方法
method1.invoke(student.newInstance());
//获取Student类名称为printInfo的方法,String.class是方法的参数类型
Method method2 = student.getMethod("printAddress",String.class);
//调用printAddress方法,其中HK是为方法传递一个参数值
method2.invoke(student.newInstance(),"hello关知红");
}catch(Exception e)
{
e.printStackTrace();
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
talentwei8899
2013-04-01 · TA获得超过768个赞
知道小有建树答主
回答量:669
采纳率:0%
帮助的人:383万
展开全部
类的全路径唯一确定一个类,在动态环境下,还需要制定对应的classloader。
例如
try
{
Class foo = Class.forName("com.foo.bar");
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lan_爱
2013-04-01 · 超过20用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:51万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greatdoudou
2013-04-01 · TA获得超过171个赞
知道小有建树答主
回答量:335
采纳率:100%
帮助的人:272万
展开全部
public class Test {
public static void main(String[] args) {
try {
Class<?> t = Class.forName("test.Test");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式