【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
本专利技术一般地涉及软件开发,并且更具体地讲,涉及各种编程语言中的任何编程语言(诸如,作为一个示例,独立于平台的面向对象的编程语言)内的语言开发的各种方面。在面向对象的编程中,传统上通过名称来引用类。如果两个类引用具有相同名称(并且具有相同起源,诸如被从同一类加载器或存储库加载),则它们被视为相同。另外,通过将模式或模板实例化来产生类是常见的开发技术。例如,这种实例化可采用由开发者执行的手动编码或由工具执行的机械模板扩展的形式。尽管基于模式或模板产生的类可提供更多的可表达性和可读性,但机械模板实例化经常依赖于类的功能的描述和类的名称之间的脆弱的映射,从而频繁地将难看的机器产生的“弄糟”的名称暴露给用户,同时在该处理中丢弃信息(例如,类Account$ImmutableWrapper是将“immutablewrapper”模板应用于类型“Account”的结果)。如果描述和类名之间的映射变化,则具有相同名称的两个类引用可能不二进制兼容,因为它们可能不再执行相同功能。
技术实现思路
可使用结构描述来使用动态地产生的模式实例化类的结构识别,以便诸如扩展在运行时环境中描述类的方式。替代于仅通过名称来描述类并且使用该名称定位该类(例如,在盘上的类文件中),类可被引用为代码生成器函数和可能的一些实参的组合。换句话说,在一些实施例中,可通过结构描述来描述类,所述结构描述指定生成器函数和针对该生成器函数的可能的一个或多个形参。在一些实施例中,对于可使用类名的几乎任何情况(例如,实参类型、返回类型、字段类型、超类型、instanceof或cast操作符的操作数等),结构描 ...
【技术保护点】
一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序指令,所述程序指令在计算装置上执行时使计算装置进行:在类文件中识别包括结构描述的类名,其中所述结构描述包括识别生成器函数的信息和用于生成器函数的一个或多个形参;执行生成器函数,其中所述执行包括将所述一个或多个形参作为输入提供给生成器函数;以及产生与类名对应的类,其中所述产生至少部分地基于来自所述执行的结果。
【技术特征摘要】
【国外来华专利技术】2014.04.22 US 61/982,802;2015.03.17 US 14/660,1771.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序指令,所述程序指令在计算装置上执行时使计算装置进行:在类文件中识别包括结构描述的类名,其中所述结构描述包括识别生成器函数的信息和用于生成器函数的一个或多个形参;执行生成器函数,其中所述执行包括将所述一个或多个形参作为输入提供给生成器函数;以及产生与类名对应的类,其中所述产生至少部分地基于来自所述执行的结果。2.如权利要求1所述的非暂态计算机可读存储介质,其中由独立于平台的面向对象的语言的编译器在编译时进行所述识别、所述执行和所述产生。3.如权利要求1所述的非暂态计算机可读存储介质,其中在独立于平台的面向对象的运行时环境的运行时进行所述识别、所述执行和所述产生。4.如权利要求1所述的非暂态计算机可读存储介质,其中所述执行包括从运行时库加载生成器函数。5.如权利要求1所述的非暂态计算机可读存储介质,其中所述一个或多个形参之一包括另一结构描述,其中所述另一结构描述包括识别另一生成器函数的信息和用于所述另一生成器函数的一个或多个其它形参,其中所述执行还包括:执行所述另一生成器函数,其中所述执行所述另一生成器函数包括将所述一个或多个其它形参作为输入提供给所述另一生成器函数;以及将来自所述执行所述另一生成器函数的结果作为输入提供给所述生成器函数。6.如权利要求1所述的非暂态计算机可读存储介质,其中所述结构描述指定要被应用于所述一个或多个形参中的至少一个形参的特化操作;并且其中所述执行生成器函数还包括将指定的特化操作应用于所述至少一个形参。7.如权利要求1所述的非暂态计算机可读存储介质,还包括:识别另一结构描述,其中所述另一结构描述包括识别另一生成器函数的信息和用于所述另一生成器函数的一个或多个其它形参;以及至少部分地基于所述结构描述和所述另一结构描述之间的比较以及所述一个或多个形参和所述一个或多个其它形参之间的比较,确定所述结构描述和所述另一结构描述是否代表两个等同的类。8.一种方法,包括:由在一个或多个计算装置上实现的编译器或独立于平台的面向对象的运行时环境在类文件中识别类名,其中所述类名包括结构描述,其中所述结构描述包括识别生成器函数的信息和用于生成器函数的一个或多个形参;由编译器或独立于平台的面向对象的运行时环境执行生成器函数,其中所述执行包括将所述一个或多个形参作为输入提供给生成器函数;以及由编译器或独立于平台的面向对象的运行时环境产生与类名对应的类,其中所述产生至少部分地基于来自所述执行的结果。9.如权利要求8所述的方法,其中由编译器在编译时进行所述识别、所述执行和所述产生,并且其中所述类文件基于独立于平台的面向对象的语言。10.如权利要求8所述的方法,其中在独立于平台的面向对象的运行时环境的运行时进行所述识别、所述执行和所述产生。11.如权利要求8所述的方法,其中所述执行包括从运行时库加载生成器函数。12.如权利要求8所述的方法,其中所述一个或多个形参之一包括另一结构描述,其中所述另一结构描述包括识别另一...
【专利技术属性】
技术研发人员:B·戈茨,J·R·罗斯,
申请(专利权)人:甲骨文国际公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。