Java反射机制获取set()方法 并且为set()方法传值

Java反射机制获取set()方法 并且为set()方法传值,第1张

ClassgetDeclaredMethod() 是获取这个类中所有的方法,返回的是Method[]如果有参数,第1个是方法名称,第2个是该方法的所有参数数组,这样返回的是Method这个对象Methodinvoke() 传入调用方法的类,另一个是调用这个方法所需要的参数,如果该方法没有参数,可以不填写,在JDK1,4之前,第2个参数是传入一个数组的,但是在jdk15之后,可以不传数组,多个参数用逗号隔开 不知道你听明白没

你是想说输出num和name么;两种方法:

Iterator it = hsiterator();

while(ithasNext())

Student s = (Student)itnext();

Systemoutprintln(snum+"NAME : "+sname);

}

二 在Student类中复写toString()方法:

class Student{

int num;

String name;

Student(int num,String name){

thisnum = num;

thisname = name;

}

public String toStrong(){

return "num :"+thisnum +" name: "+thisname ;

}

}

采用二方法较佳,此时直接输出对象即可;

while(ithasNext())

Student s = (Student)itnext();//需要强制转换

Systemoutprintln(s);

}

这个和你的CAD版本有关,2012以上的才设置为18

2007到2011版本的要设置为Set objDbx = CreateObject("ObjectDBXAxDbDocument17")

而2006的要设置为:Dim objDBX as AxDbDocument

建议你看下你的CAD版本。

matlab里关于绘图指令,有一个“句柄”的概念,就是每个绘图对象(比如一个点、一个多边形)都对应一个唯一的句柄(matlab里句柄是一个浮点数字),然后通过句柄对这个对象进行管理和属性设置,get和set分别是获取对象的属性值和设置对象的属性值,属性一般包括:点的大小、线的粗细、面的颜色等等;你这个应该是用patch绘制一个多边形,然后对多边形的颜色进行设置,比如,我画一个正方形,然后把他设置为红色的:

>> x = [ 0, 0, 1, 1 ];

>> y = [ 0, 1, 1, 0 ];

>> h = patch( x, y, [ 0, 0, 1 ] )

h =

  00050

>> set( h, 'facecolor', [ 1, 0, 0 ] )

另外,set一次可以设置多个属性值:set( h, 'pro1', val1, 'pro2', val2 );类似这样;至于某个对象到底有些什么属性可以设置,你可以用get(h)查看;

楼主不必纠结,你输出肯定是这样[LjavalangString

不信你直接new一个数组输出就是这样,封装类还好些

像Integer输出是:[LjavalangInteger

int的话就是:[I

判断数组的话不要输出他的类型

用:对象classisArray()方法 如果输出true就说明是数组

我给你来一段吧 自己写的 给分啊

先写一个从字符串生成任何类型的对象的函数

public object stringToObject(string str,Type objectType)//传递两个参数,一个是字符串含有每个属性的属性名和值对,属性和值用冒号分隔,属性与属性用逗号分隔,另一个参数是要创建的对象的类型{string[] shuxing = strSplit(new char[] { ',' });//将字符串分解成 “属性:值”数组

for (int i = 0; i < shuxingLength; i++){shuxing[i]= shuxing[i]Replace(\, );

}//去掉字符串的双引号

object obj = SystemActivatorCreateInstance(objectType); //使用反射动态创建对象

PropertyInfo[] pis =obj GetType()GetProperties(BindingFlagsPublic|BindingFlagsInstance);//获得对象的所有public属性

if (pis != null)//如果获得了属性

foreach (PropertyInfo pi in pis)//针对每一个属性进行循环{for (int i = 0; i <shuxingLength; i++)//检查字符串中的所有“属性:值”列表{if (shuxing[i]Split(new char[] { ':' })[0] == piName)//如果对象的属性名称恰好和字符串中的属性名相同{Type proertyType= piPropertyType; //获得对象属性的类型

piSetValue(obj, ConvertChangeType(shuxing[i]Split(new char[] { ':' })[1],proertyType), null);

//将字符串中的字符串类型的“值”转换为对象属性的类型,并赋值给对象属性}}}return obj;}然后调用这个函数

定义一个学生类class stu{string _name;int _age;public string name

{get{return _name;}

set {_name=value;}}public int age{get { return _age; }

set { _age = value; }}}pageload里面可以使用下面方法创建stu对象了

由于使用了反射技术需要导入名字空间 using SystemReflection;

using using SystemReflection;

。。。。。。。

可以了解下hibernate,new一个对象,然后set一个name,利用hibernate的hql语句映射到数据库,就会根据这个name查到你想要的对象,接收这个对象后,就可以get到其他的值了。

以上就是关于Java反射机制获取set()方法 并且为set()方法传值全部的内容,包括:Java反射机制获取set()方法 并且为set()方法传值、HashSet存入对象怎么取出对象的值、想问您关于Set objDbx = CreateObject("ObjectDBX.AxDbDocument.18")在VB不能获取到对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9352910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存