我非常喜欢简洁的方法名称,因此当我们的代码库具有以下内容时:
Account.getAccountId();
我喜欢添加一个别名,这样我就可以这样做:
Account.getId();
但是,我听到...公司其他地方的人提示这可能会产生问题,因为我定义的 getId 会干扰所有 Java 对象都具有的内置 getId 或类似的东西。此外,我们使用 JRuby 来引用旧的 Java 类,因此该问题也可能与内置的 Ruby getId 方法有关。
不过,我并不完全相信存在问题(而且我真的很喜欢我的简短方法名称)。那么,有谁知道定义 getId 方法(在 Java 或 JRuby 中)是否存在问题,如果有,问题是什么以及可以解决吗?
编辑:从迄今为止的响应(以及我对 Java 的了解)看来,问题不可能出在某些核心 Java getId 功能上(因为没有)。所以这个问题实际上是针对 JRuby 人员的;如果 getId“冲突”来自任何地方,那么它一定来自 JRuby 的东西。
最佳答案
However, I've heard ... murmurs from elsewhere in my company about how this might be problematic, because the getId I define will interfere with a built-in getId that all Java objects have, or something like that.
java.lang.Object
是类层次结构的根。每个类都有 Object
作为父类(super class)。所有对象(包括数组)都实现此类的方法。
但是Object
没有任何getId
方法。所有 Java 对象也是如此。
关于java - 在 JRuby 中使用的 Java 对象上使用(自定义)getId 方法有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1604351/