小编fre*_*6om的帖子

为什么内部类方法会隐藏所有具有相同名称的封闭类方法?

考虑下面的java代码:

class Enclosing {
    void method(){}
    void method(String str){}

    class Inner {
        void method(){}
    }   
}
Run Code Online (Sandbox Code Playgroud)

我正在读一本书,告诉我Inner.method()将隐藏两个版本Enclosing.method(),这意味着如果我method(aString)在课堂上的某个地方打电话,这是一个错误Inner.

为什么语言设计如此?

更新:
根据@Debosmit Ray给出的答案,它与阴影有关.我已经阅读了文档,并了解它是什么.

令我困惑的是为什么方法阴影是基于方法名称而不是方法签名

java inner-classes shadowing

9
推荐指数
1
解决办法
655
查看次数

如何缩小共享库的大小?

我是一名 Java 程序员。
我在我的 android 项目中包含了一个开源 C 库(比如 A),以便通过函数 F1 执行一些本机工作。函数 F1 运行良好,但 A 编译的共享库大小为 5M。这意味着我的最终 APK 将增加大约 5M,这是很大的。
我的问题是,如何缩小共享库以仅包含我需要的函数?或者至少删除大部分我不需要的功能?有没有什么工具可以实现这一点?

更新 1:
@Employed Russian 已经通过“strip”工具回答了上述问题的大部分。
我进一步的问题是,是否有任何工具可以实现像ProGuard对 Java 所做的那样,即完全删除我没有调用的代码?

c c++ android shared-libraries

6
推荐指数
2
解决办法
3881
查看次数

标签 统计

android ×1

c ×1

c++ ×1

inner-classes ×1

java ×1

shadowing ×1

shared-libraries ×1