A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一碗小米周 中级黑马   /  2013-9-17 23:10  /  2860 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 一碗小米周 于 2013-9-18 08:42 编辑
  1. sBuilder.append('(');
  2.                         Class[] clazzParames = con.getParameterTypes();
  3.                         for(Class clazzParame : clazzParames ){
  4.                                 sBuilder.append(clazzParame.getName()).append(',');
  5.                         }
复制代码
请问一下各位,那个getParameterTypes()方法返回的是形参类型,getName()表示以字符串形式返回此构造方法的名称。那么clazzParame.getName()表示的是参数名称吗?getName()表示什么呢?谢谢。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

7 个回复

倒序浏览
难道getName()不是获取clazzParame 这个对象的名称(此方法用于获取name属性封装后的值)!!???难道还有其他?
回复 使用道具 举报
本帖最后由 kmter 于 2013-9-18 01:01 编辑

这种问题可以查API文档信息。或者直接使用输出语句输出字符串内容。
输出的应该是
“第二行con对象表示的构造方法的参数类型所引用的类的二进制名称”
稍微有点拗口,不好意思,不过逻辑还是有的。具体getName()在什么情况下表示什么内容由于篇幅过长还是建议查API理解。
回复 使用道具 举报
狼人→浪人 发表于 2013-9-18 00:22
难道getName()不是获取clazzParame 这个对象的名称(此方法用于获取name属性封装后的值)!!???难道 ...

那么clazzParame表示的是形参类型,那么clazzParam.getName()不应该表示的是形参名?
回复 使用道具 举报
public Class<?>[] getParameterTypes()
返回一个Method对象所代表的方法上,按照参数申明顺序排列代表参数类型的Class对象的数组。如果这个方法没有参数,则返回长度为0的数组。

public String getName()
getName以 String 的形式返回此Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。

Examples:(此例摘自Java api)
String.class.getName()     returns "java.lang.String" byte.class.getName()     returns "byte" (new Object[3]).getClass().getName()     returns "[Ljava.lang.Object;" (new int[3][4][5][6][7][8][9]).getClass().getName()     returns "[[[[[[[I"     //[的个数代表数组嵌合的深度。

所以clazzParame是clazzParames数组中的一个元素,代表con这个方法中参数的类型,而clazzParame.getName()返回的是对应参数的Class对象的名称,例如,如果一个参数类型是String,那么就会返回java.lang.String.





回复 使用道具 举报
很抱歉,上个帖子的例子部分显示有问题,现在进行修改一下。
Examples(此例摘自Java api)
String.class.getName() //returns "java.lang.String"
byte.class.getName() //returns "byte"
(new Object[3]).getClass().getName() //returns "[Ljava.lang.Object;"
(new int[3][4][5][6][7][8][9]).getClass().getName()
returns "[[[[[[[I" //[的个数代表数组嵌合的深度。
回复 使用道具 举报
请问一下各位,那个getParameterTypes()方法返回的是形参类型,getName()表示以字符串形式返回此构造方法的名称。那么clazzParame.getName()表示的是参数名称吗?getName()表示什么呢?谢谢。


1.getParameterTypes()返回的是构造函数的所有形参的类型的数组
2.你说的getName()是说你这个代码里的clazzParame.getName()吗?如果是的话,这个是获取构造函数中参数的类型的名称的字符串形式,比如参数的类型是String类型的,那么会返回java.lang.String
3.比如说有一个类的名称叫ReflectPoint.class,那么ReflectPoint.class.getName()将返回这个类的全路径名称

回复 使用道具 举报
第一印象 发表于 2013-9-18 08:39
请问一下各位,那个getParameterTypes()方法返回的是形参类型,getName()表示以字符串形式返回此构造方法的 ...

恩。谢谢。我想到了。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马