java - Android 上增强基色类

标签 java android class

我为后来的 Android API (26+) 编写了很多代码,它们支持 Color.valueOf() 和数字颜色 channel 等内容。我想向后移植一些代码以与较旧的 API 设备一起使用,而不必将 Color 类的每个实例更改为其他内容。

Java 中有没有一种方法可以修改类,而无需创建具有新功能的派生类?

基本上,我想在我使用的缺失函数中增加较少的 API Color 类和代码。

在我看来,我从概念上看是这样的:

augment class Color() {

    // Add in missing functions
    public static int valueOf(float r, float g, float b) {
    }

    public static int valueOf(int r, int g, int b) {
    }

    // Other functions here
}

它将编译默认的 Color 类,添加这些附加函数,以便从那时起它们可以在 API 较少的设备中的应用程序中使用。

最佳答案

Is there a way in Java to modify a class without having to create a derived class with the new functionality?

抱歉,Java 中没有内置任何内容。

请注意,相关方法 (valueOf()) 是静态 方法。您当前的代码如下调用它们:

Color.valueOf(foo, bar, goo);

编写一个脚本来替换这些调用并不需要太多:

RickColorCompat.valueOf(foo, bar, goo);

或者,尝试在 Android Studio 中的路径中编辑 > 查找 > 替换。就我个人而言,我有一个命令行 gsub Ruby 脚本,是我不久前为此类搜索和替换工作编写的。

不过,根据您使用 Color 中的其他内容,该方法可能不起作用。

关于java - Android 上增强基色类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60290989/

相关文章:

javascript - 调用基类函数——JavaScript中的类继承

C++ 不完整的类类型指针

java - 如何在 JFrame 中将 JDesktopPane 置于后台

android - 如何在 android 中使用解析 api 在解析服务器中上传图像

Android eclipse,更改最低 SDK 版本不会触发 Lint 错误

java - 将部分 FileInputStream 写入 FileOutPutstream

php - 处理 PHP 中的应用程序级错误

java - Java swing 中的图像映射功能,Points 与 GeneralPath

java - 解密错误: caused by java. lang.noclassdeffounderror com/android/org/constcrypt/OpenSSLRSAPublicKey android

java - JPA 对嵌套实体的唯一约束