`
RednaxelaFX
  • 浏览: 3048196 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

Ruby/JRuby里定义类时指定基类的一个问题

    博客分类:
  • Ruby
阅读更多
之前的一帖里提到了JRuby里Java类的名称问题。后来读到JavaEye上当Ruby遇到Java,勇敢地跨越边界吧这一帖,发现里面有这样的代码例子:
class MyStringBuffer < java.lang.StringBuffer
  def append(v)
  end
end

然后觉得有点奇怪:为什么基类的部分用java.lang.StringBuffer就行呢?在类的名字定义那里要是写java.lang.StringBuffer明明不行的。

后来发觉Ruby在定义类的时候,基类的部分只要是个返回Class类型的表达式就行,不一定要是具体的基类的名字。
在Ruby 1.8.6里测试:
irb(main):001:0> class A
irb(main):002:1> end
=> nil
irb(main):003:0> class B
irb(main):004:1>   def B.a
irb(main):005:2>     A
irb(main):006:2>   end
irb(main):007:1> end
=> nil
irb(main):008:0> class C < B.a
irb(main):009:1> end
=> nil
irb(main):010:0> C.superclass
=> A

在JRuby 1.1.2里测试得到的结果是一样的。这样就可以理解为什么前面StringBuffer的例子能正确执行了。
但是类名的部分仍然必须是一个合法的名字,而不能是任意的表达式。
2
0
分享到:
评论

相关推荐

    ython读取由ruby/jruby生成的yml数据

    用python读取由ruby/jruby生成的yml数据

    Ruby-JRuby一个Ruby语言的Java实现

    这就是JRuby的出现原因,它是一个将Ruby语言实现于Java虚拟机(JVM)上的项目。 JRuby的核心目标是提供与原生Ruby解释器相当的性能,同时利用JVM的跨平台兼容性和企业级特性,如垃圾回收、线程支持和丰富的库。通过...

    巧妙规避Java与Ruby语言迁移过程中的风险

    在IT行业中,语言迁移是一个常见的现象,特别是在软件开发领域,开发者可能会从一种编程语言迁移到另一种,例如从Java转向Ruby。然而,这种迁移过程往往伴随着风险。本文主要探讨了Java和Ruby这两种语言在迁移过程中...

    JRuby和Rails-让Ruby语言融入于Java项目.rar

    JRuby是Ruby编程语言的一个实现,它是用Java语言编写的,因此可以无缝地与Java平台交互。JRuby的优势在于它不仅支持Ruby语法,还能利用Java的生态系统,包括Java库、Java虚拟机(JVM)以及各种企业级服务。这使得...

    如何安装与配置JRuby

    JRuby 是一个基于 Java 平台的 Ruby 实现,它允许开发者利用 Ruby 语言的优势同时享受 Java 生态系统的强大功能。在本文中,我们将详细探讨如何安装和配置 JRuby,特别是针对 JRuby 1.1.2 版本与 Java 1.6。 **一、...

    proxy_fetcher::flexed_biceps:Ruby JRuby TrufflleRuby gem&CLI,用于处理来自各种来源的代理列表

    它为您提供了一个特殊的Manager类,该类可以加载代理列表,对其进行验证并返回随机或特定的代理。 它还具有一个Client类,该类封装了用于使用代理发送HTTP请求的所有逻辑,该代理由gem自动获取和验证。 请查看下面...

    org.jruby.rar

    1. JRuby 定义:JRuby 是 Ruby 语言的一个开源实现,它的目标是使 Ruby 程序能够无缝地在 Java 平台上运行。JRuby 不仅实现了 Ruby 标准库,还支持 Ruby on Rails 框架,使得 Java 开发者能够利用 Ruby 的生产力特性...

    Jruby+cucumber+celerity配置

    - 当同时安装了 Ruby 和 JRuby 时,请确保 JRuby 的环境变量优先级高于 Ruby,以避免冲突。 - 在进行测试案例编写时,建议遵循 BDD 的原则,确保测试案例清晰、易读。 - Cucumber 支持多种格式的输出,可以根据实际...

    hdfs client for ruby (just jruby) hdfs客户端 基于jruby.zip

    标题中的"hdfs client for ruby (just jruby) hdfs客户端 基于jruby.zip"指出,这个压缩包提供了一个专门为JRuby(Java版本的Ruby)设计的HDFS客户端。JRuby允许Ruby代码与Java平台无缝集成,因此这个客户端能够利用...

    docker-ruby:用于许多 MRI Ruby 和 JRuby 解释器的 Dockerfiles

    一个真正的应用程序的 Dockerfile 应该从这个镜像继承,添加一个应用程序用户,添加 git,做一个源签出和bundle install等。生成rubies/ 要更新 rubies rubies/下可用的所有 Ruby 版本 Dockerfile,请执行make ...

    jruby1.7.8版本呢

    JRuby 是一个开源的、高性能的 Ruby 解释器,它能够将 Ruby 代码编译成 Java 字节码,从而在 Java 虚拟机(JVM)上运行。JRuby 的出现使得 Ruby 开发者能够利用 JVM 的强大功能和丰富的库,同时也让 Java 开发者能够...

    jruby-src-1.0

    标题“jruby-src-1.0”指的是JRuby的一个特定版本——1.0的源代码。JRuby是一种实现Ruby编程语言的Java版本,它允许在Java平台上运行Ruby代码,同时也支持与Java应用程序进行无缝集成。这个压缩包“jruby-src-1.0....

    安装Ruby,JRuby,Rubinius,TruffleRuby或MRuby-Ruby开发

    ruby-install安装Ruby,JRuby,Rubinius,TruffleRuby或mruby。 功能支持安装任意版本。 支持从ruby-versions下载最新版本和校验和。 支持installi ruby​​-install安装Ruby,JRuby,Rubinius,TruffleRuby或mruby...

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

    在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求选择最适合的运行时环境。`ruby-install`就是这样一个工具,它允许用户方便地安装和管理...

    为并发性而构建的Ruby / Rack Web服务器-Ruby开发

    Puma:为并发构建的Ruby Web服务器Puma是用于Ruby / Rack应用程序的简单,快速,多线程,高度并发的HTTP 1.1服务器。...每个请求都在一个单独的线程中提供服务,因此是真正的并发Ruby实现(JRuby,Rubinius

    NetBeans Ruby and Rails IDE with JRuby 2009

    - **创建Ruby项目**:通过简单的几个步骤即可创建一个新的Ruby项目。 - **创建Rails项目**:同样地,也可以创建Rails项目,并利用NetBeans提供的各种特性来加速开发流程。 #### 三、配置环境 - **注册Ruby安装**:...

    jruby-bin-1.3.1.zip

    JRuby是Java平台上的一个实现,它允许开发者在Java虚拟机(JVM)上运行Ruby编程语言。这个“jruby-bin-1.3.1.zip”压缩包是JRuby的一个早期版本,专为Ruby语言的研发提供必要的工具和环境。在这个版本中,重点是兼容...

    Ruby-rubybuild编译和安装Ruby

    `rbenv`是一个用于管理全局或用户级别的Ruby版本的工具,它允许你在多个项目之间轻松切换Ruby版本。而`ruby-build`是`rbenv`的一个插件,它的主要功能是编译并安装各种版本的Ruby。 首先,你需要在你的系统上安装`...

Global site tag (gtag.js) - Google Analytics