让我从我想做的事情开始,然后提出一些问题.
我想开发一个通用的Java程序,它是许多程序的超集(让我们称之为程序变体).特别地,通用程序具有仅由一个或多个程序变体(但不是全部)使用的方法.给定一个特定的配置,我想删除不必要的方法,并为一个程序变量保留最小的方法集.
例如,我有一个通用程序如下:
public class GeneralProgram {
// this method is common for all variants
public void method1() {};
// this method is specific to variant 1
public void method2() {};
// this method is specific to variant 2
public void method3() {};
}
Run Code Online (Sandbox Code Playgroud)
然后在基于变体1的配置修剪程序之后,结果是
public class GeneralProgram {
// this method is common for all variants
public void method1() {};
// this method is specific to variant 1
public void method2() {};
}
Run Code Online (Sandbox Code Playgroud)
结果类名称是否与原始类名称相同无关紧要.我只想修剪课程内容.
所以,这是我的问题:
除了低级文本处理之外,您是否知道如何实现这一目标?
我知道我可以使用aspectJ在运行时禁用/启用特定方法,但我真正想要做的是在部署程序之前执行此任务.为此目的,Java中是否有任何技术?
你知道如何在Android下运行具有root权限的应用程序吗?我使用了以下代码段,但root权限仅授予生成的进程,而不是应用程序本身.
process = Runtime.getRuntime().exec("su")
Run Code Online (Sandbox Code Playgroud) WSO2 ESB 4.8.1似乎不支持以下XPath函数:
有谁知道支持哪些XPath功能以及WSO2 ESB 4.8.1中不支持哪些功能?
我正在使用 Java Visual VM 的内存采样功能,但我无法回答以下问题:
为什么会创建这么多实例?
为什么这些实例数和字节数不断增加?
例如,我创建了一个非常简单的 Java 程序,如下所示:
public class TestMemory{
public static void main(String[] args) throws InterruptedException {
System.out.println("Hello");
Thread.sleep(60 * 60 * 1000);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在 Java Visual VM 中看到有 611 个类。实例数量不断从 25,000 增加到接近 50,000,然后又回落到 25,000 左右。实例减少的原因可能是由 GC 引起的,但我不知道为什么这些数字如此动态,即使我没有对我的程序做任何事情。