扩展类的同时保留java中的名称

  • 本文关键字:java 扩展 保留 java android
  • 更新时间 :
  • 英文 :


是否可以在java中扩展类而保留原始名称?如果现在我可以添加到该类额外的功能(注意这个类是由android sdk提供的,它的视图类)

不,Java中的类不是"可重新打开的"。扩展是一个新的类。

(需要注意的是,通过背叛,您可能能够添加字节码,但没有人能够在编译时访问它。)

只有在不同的包中才能这样做。(也就是说,它可以具有相同的简单名称,但不能具有相同的限定名称。)

package com.me;
class Number extends java.lang.Number {
    // ...
}

当您在java中扩展一个类时,您可以通过创建一个具有新名称的新类来实现。例:

public class MySpecialView extends View

扩展类未被修改

我假设您指的是完全限定名(FQN =包+类名)。所以,不,你不能,你真的不应该。这就是包名的意义所在。

如果您坚持这样做,那么您可以创建一个具有相同包和相同名称的新类,从原始源代码开始(假设您拥有它),并更改您需要的任何功能。根据类路径顺序(通常您的源代码优先于任何包含的库,但您必须确保是这样),类装入器将选择您的类而不是原始类。但这更像是一种hack,我强烈建议避免使用它,除非您确切知道自己在做什么,因为您最终可能会出现各种意想不到的行为。

最新更新