Java可以在Objective C中做类似的事情吗?

Java可以在Objective C中做类似的事情吗?

问题描述:

请考虑以下情况:

Object > MyClass > MyClassA, MyClassB

例如,如果我想要对象级别的东西,我添加了printDetail();我怎么能在Java实现中做到这一点?此外,我可以覆盖所有Object的方法。例如,我需要一个全新的.toString(),我可以覆盖它吗?谢谢。

If I want something in the Object level, for example, I added printDetail(); How can I do it in Java implementation? Moreover, can I override all the Object's method. For example, I need to have a whole new .toString(), can I override it? Thanks.

不,它不能,不管怎么说。 Objective C是一种动态类型和范围的语言,使其非常适合类别等功能。您可以在Java中最接近的是通过字节代码操作库(如 ASM Javassist

No it cannot, not really anyway. Objective C is a dynamically typed and scoped language, which makes it very amenable to features like categories. The closest you can come to this in Java is class instrumentation via a byte code manipulation library like ASM or Javassist.

但实际上,强烈使用时类似于Java的OO语言你应该接受它的功能,而不是试图复制另一种语言。

But really, when using a strongly typed OO language like Java you should embrace its features rather than trying to duplicate those of another language.