String m = "m1"; String l = "http"; Mdd mdd = new Mdd(); Class<? extends Mdd> aClass = mdd.getClass(); // Method[] methods = aClass.getMethods(); // for (Method method : methods) { // System.out.println(method.getName()); // System.out.println(method.getReturnType()); // System.out.println(Arrays.toString(method.getParameterTypes())); // } Method method = aClass.getMethod(m,String.class); Class<?> returnType = method.getReturnType(); String simpleName = returnType.getSimpleName(); Object invoke = method.invoke(mdd, l); System.out.println(invoke.getClass()); System.out.println(returnType.cast(invoke).getClass());这段代码的作业
时间: 2024-04-01 12:37:00 浏览: 278
这段代码的作用是通过 Java 反射机制,动态调用 Mdd 类中的指定方法,并获取该方法的返回值类型和返回值。
首先,代码中定义了一个字符串变量 m 和 l,分别表示方法名和方法的参数。接着,创建了一个 Mdd 的实例 mdd,并获取该实例的 Class 对象 aClass。
接下来,通过 aClass 对象的 getMethod 方法获取指定名称和参数类型的方法对象 method。在这里,方法名为 m1,参数类型为 String 类型。
然后,通过 method 对象的 getReturnType 方法获取该方法的返回值类型,并通过 getSimpleName 方法获取返回值类型的类名。
接着,使用 method 对象的 invoke 方法调用 Mdd 实例 mdd 的 m1 方法,并将参数 l 传入。该方法的返回值为 Object 类型,需要通过 cast 方法将其转换为返回值类型。
最后,输出 invoke 对象的类名和 cast 方法转换后对象的类名。
总的来说,该段代码的作用是通过 Java 反射机制,动态调用 Mdd 类中的指定方法,并获取该方法的返回值类型和返回值。
相关问题
牛津10 欧路词典 1.mdd 和 2.mdd什么意思
MDD和MDD都是与欧路词典相关的概念。其中,MDD是“Merriam-Webster's Dictionary and Thesaurus”的缩写,意思是《韦氏词典与同义词词典》。欧路词典通过许可协议与M-W公司合作,将这部词典集成到其应用程序中,使用户可以随时查询M-W公司的词典和同义词词典内容。
另一方面,MDD是欧路词典使用的两种词典文件格式之一。MDD文件是一种词典数据库文件,包含不同词典的条目和释义等相关信息。由于MDD文件通常很大,因此将其存储在移动设备上可能需要较长时间。因此,欧路词典还开发了另一种文件格式,称为“LMD”(Lightweight Mobile Dictionary),这种格式文件更小,便于在移动设备上存储和加载,同时仍然提供高质量的词典内容。
import codecs,csv headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44', } url='https://www.mafengwo.cn/hotel/10183/?sFrom=mdd' res=requests.get(url,headers=headers) html=etree.HTML(res.text) total=html.xpath('//ul[@class="clearfix"]/li') f=open('住宿攻略1.csv','w+',newline='',encoding='utf-8-sig') filename=['name','num'] writer=csv.DictWriter(f,filename) writer.writeheader() for item in total: spot={} spot['name']=item.xpath('.//strong/text()')[0] spot['num']=item.xpath('.//span/text()')[0] print(spot) writer.writerow(spot) 逐行标注这段代码
```
import codecs,csv # 导入codecs和csv模块
headers={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44',
} # 设置请求头headers
url='https://www.mafengwo.cn/hotel/10183/?sFrom=mdd' # 定义目标网址
res=requests.get(url,headers=headers) # 发送get请求,获取响应对象
html=etree.HTML(res.text) # 将响应对象转换为HTML文档
total=html.xpath('//ul[@class="clearfix"]/li') # 使用XPath定位到需要爬取的数据所在的节点
f=open('住宿攻略1.csv','w+',newline='',encoding='utf-8-sig') # 打开文件,准备写入数据
filename=['name','num'] # 定义文件头
writer=csv.DictWriter(f,filename) # 创建DictWriter对象,用于写入字典形式的数据
writer.writeheader() # 写入文件头
for item in total: # 循环遍历每个节点
spot={} # 定义空字典,用于存储每个节点的数据
spot['name']=item.xpath('.//strong/text()')[0] # 使用XPath定位到需要爬取的数据,将其存储到字典中
spot['num']=item.xpath('.//span/text()')[0]
print(spot) # 输出每个节点的数据
writer.writerow(spot) # 将每个节点的数据写入文件中
```
注:本代码需要导入 requests、csv 和 lxml.etree 模块。
阅读全文