静态类型和动态类型各有长短,为何不让这2者兼得呢?
比如一段代码:
String str = "Hello, World";
dynamic str1 = str.substring(7);
dynamic str2 = str1.toLowerCase();
dynamic str3 = str2.toUpperCase();
只需要一个关键字表明它是一个动态类型,并给它加上一个wrapper类,然后把方法调用扩展成一个send方法,我假想的编译器展开后结果是这样的:
String str = "Hello, World";
Dynamic str1 = new Dynamic(str.substring(7);
Dynamic str2 = new Dynamic(str1.send("toLowerCase"));
Dynamic str3 = new Dynamic(str2.send("toUpperCase"));
剩下的工作好办了,只要支持反射的语言都可以完成。
完整测试代码:
class Dynamic{
private Object object;
public Dynamic(Object object){
this.object = object;
}
public Object send(String methodName, Object ... args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{
Class[] classes = new Class[args.length];
for(int i=0; i<args.length; ++i)
classes[i] = args[i].getClass();
Method method = object.getClass().getMethod(methodName, classes);
return method.invoke(object, args);
}
public String toString(){
return object.toString();
}
}
public class Test {
public static void main(String[] args) throws SecurityException, IllegalArgumentException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
String str = "Hello, World!";
Dynamic str1 = new Dynamic(str.substring(7)); // dynamic str1 = str.substring(7);
System.out.println(str1);
Dynamic str2 = new Dynamic(str1.send("toLowerCase")); // dynamic str2 = str1.toLowerCase();
System.out.println(str2);
Dynamic str3 = new Dynamic(str2.send("toUpperCase")); // dynamic str3 = str2.toUpperCase();
System.out.println(str3);
}
}
分享到:
相关推荐
【动静结合写景片段训练】是一种写作技巧,常用于描绘自然景观或人文环境,使得文章更具生动性和层次感。在四年级作文教学中,引导学生掌握这种手法有助于提高他们的观察力和表达能力。 动静结合的基本理念是将动态...
2. **凸显语言艺术性**:通过独特的视角和表达方式,动静结合使得语言更加艺术化,展现出作者的创新思维和表达技巧。 3. **展现人物或作者的心境**:通过动静结合,作者可以微妙地传达人物的内心情绪,或展示自己的...
本文将深入探讨基于Java虚拟机的动静结合自适应优化方法,这是一种旨在提高Java应用程序性能的技术。 一、动态优化与静态优化 在Java虚拟机中,优化主要分为静态优化和动态优化。静态优化是在编译阶段进行的,例如...
本文提出了一种动静结合的二阶SQL注入漏洞检测技术,其旨在有效检测Web应用程序中二阶结构化查询语言(SQL)注入漏洞。二阶SQL注入是指攻击者注入的恶意SQL代码在经过数据库处理后才表现出来,这为传统的SQL注入检测...
针对题目中给出的内容,以下是对【一种基于Java虚拟机的动静结合自适应优化方法.pdf】文档中所涉及的知识点的详细说明: 1. Java虚拟机(JVM)基础: Java虚拟机是运行Java程序的核心引擎,负责将Java字节码转换为...
总之,动静聊天室(asphtmlchat) v9.0 豪华版提供了强大的聊天功能,结合ASP和HTML技术,为企业和网站提供了一种便捷的在线交流解决方案。通过合理配置和使用,可以极大地提升网站的互动性和用户体验。
《大班语言上彩色的风》课件充分利用了多媒体的优势,图文并茂,动静结合,让孩子们在观看和倾听的同时,也能进行互动参与。教师可以引导孩子们用自己的话描述课件中的场景,或者鼓励他们创作自己的“彩色风”故事。...
11. 《威尼斯的小艇》:模仿作者的写作手法,描写熟悉景物,强调抓住景物特点并结合人物活动,采用动静结合的方式,提高景物描写的生动性。 这些训练点旨在循序渐进地培养学生的阅读理解力,激发其创造力,提升写作...
动静结合,使场景更具生动性;点面结合,既展现全局又聚焦细节;细描和白描则是两种不同的叙述风格,细描详尽入微,白描则简约而传神。 在表现手法上,小说常采用象征、悬念、铺垫、衬托、对比、抑扬、照应、巧合和...
DSI教学法正是将这两种理论结合,通过动静结合的方式,帮助学生更好地吸收和巩固知识。 二、DSI教学法的实施步骤 1. 动态阶段(Dynamic Phase):教师会设计一些互动性强、能调动学生身体参与的活动,如角色扮演、...
6. **教学反思**:教师在活动后进行了教学反思,认识到在活动中存在的问题,如幼儿注意力分散、台上台下互动不足等,并提出了改进措施,如增加幼儿口语表达的机会,采用动静结合的方式保持幼儿的兴趣。 7. **教育...
描写和抒情是散文的重点,如描写手法中的动静结合、虚实相生等,抒情方式则有直接抒发和间接抒发。表现手法如联想想象、比喻象征、对比衬托、欲扬先抑、虚实结合等,丰富了散文的表现力。 散文的语言特色各异,如...
【知识点】 1. 幼儿园教育理念:此活动遵循幼儿园的教学原则,旨在通过互动和体验,让孩子们在轻松愉快的环境中学习和成长。...活动设计注重动静结合,寓教于乐,使孩子们在享受学习过程的同时,也感受到生活的美好。
- **室内外融合**:通过设计将室内外环境结合,实现动静结合。 6. **情感共鸣**: - **生活格调**:设计提升生活品质,注入活力,促进家庭和谐。 - **文化与简约**:简约风格与文化元素的结合,赋予空间精神和...
这篇文档是针对小学五年级语文下册第七单元的“语文园地七”的教案,主要目的是教授学生如何观察、欣赏并描述景物,以及如何通过动静结合的手法来增强描绘景物的魅力。教案分为多个部分,旨在提升学生的语言表达能力...
综上所述,本资料中的知识点包括:静态描写与动态描写的区别和运用,景物描写技巧,动静结合的写作手法,以及如何通过细致入微的语言表达和比较手法来突出事物的特点。这些都是在语文学习中,尤其是写作训练中需要...
江南的初夏,乡村的景致总是让人心旷神怡。...动静结合的写作技巧、色彩语言的运用,以及对传统文化的感悟,这些内容的融入,不仅让学生学会了如何生动地表达自己的情感,更在无形中提升了他们的文学素养和人文情怀。
此外,还有特殊的小说构造技巧,如悬念设置、照应呼应、联想和想象的运用、抑扬结合、点面结合、动静结合、叙议结合、情景交融、衬托对比、伏笔照应、托物言志、白描细描、铺垫悬念、正面侧面描绘、比喻象征、...
教学策略方面,教师运用多元化的教学手段,如视觉、听觉刺激以及动静结合的方式,以吸引幼儿的注意力,激发他们的观察力、想象力和口语表达能力。教师会在课堂上巧妙地融入音乐、故事讲述、角色扮演等元素,使孩子们...