gpt4 book ai didi

java - 如何配置 Proguard 以保持具有不同返回时间的静态方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:25 25 4
gpt4 key购买 nike

我有一组类(超过 50 个),其中包含一些名为 parse() 的静态方法,该方法返回该类的一个实例。这是其中一个类的示例:

class SomeType {

// Parse methods
public static SomeType parse(String text) { ... }
public static SomeType parse(Object obj) { ... }
...

// Other methods
public void static somethingStatic(...) { ... }
public void somethingNotStatic(...) { ... }
...
}

我正在尝试配置 ProGuard 以混淆这些类及其所有方法和字段except parse(...) 方法。基本上,我想混淆类名、所有静态和非静态方法以及类字段。

我试过使用:

-keepclassmembers class SomeType {
public static SomeType parse(***);
}

这对 SomeType 来说效果很好,但我不想为我的 50 个类中的每一个类都编写此规则...那么我该如何概括它呢?

我试过:

-keepclassmembers class ** {
public static * parse(***);
}

但是 ProGuard 提示返回类型的语法...

最佳答案

您的规则几乎是正确的,只需使用 *** 作为返回类型,它将匹配任何类型:

-keepclassmembers class ** {
public static *** parse(***);
}

此外 -keepclassemembers 优于 -keepclasseswithmembers 因为它只会保留您指定的方法而不是类本身(在您的情况下可能不需要,因为您描述)。

如果解析方法有多个参数,您应该使用:

-keepclassmembers class ** {
public static *** parse(...);
}

... 将匹配任何 数量的任何 类型的参数。

关于java - 如何配置 Proguard 以保持具有不同返回时间的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38574605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com