java - 有没有办法通过功能而不是值(value)来比较两种方法?

标签 java compare

<分区>

有没有办法比较两个方法在功能上是否等效(即它们做同样的事情)而不是在值上等效(即方法中的所有代码都相同)?

例如,这两个方法的编码不同,但执行相同的功能。

public int doIt(int a, int b) {
    a = a + 1;
    b = b + 1;
    return a + b;
}

public int doIt2(int z, int x) {
    int total = z + x + 2;
    return total;
}

我一直在寻找一种在 Eclipse 中执行此操作的方法,但我很感兴趣这是否有可能超越简单的方法。

最佳答案

成为 100% 的唯一方法是用数学证明它

有几种方法:

1- Theorem proving

2- Model Checking

等等

虽然这些方法可能非常困难,但有时可能需要几天时间来证明它,即使是对于琐碎的程序,甚至需要几天时间才能产生足够的抽象级别。

有一些启发式方法,但显然它们不是 100% 准确(启发式)

一个简单的启发式方法是对 1000 个输入尝试这两种方法,看看结果是否相同

编辑:

这是我在维基百科上找到的模型检查器列表。我没有使用过它们中的任何一个,它们可能不是您要找的东西。

https://en.wikipedia.org/wiki/List_of_model_checking_tools

关于java - 有没有办法通过功能而不是值(value)来比较两种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42299678/

相关文章:

java - onCreate 中的 SQLite 错误

android - Android SQLite在两个日期之间选择

C++ 比较两个数组中的整数?

Java 抽象类(this 关键字)

java - 在javafx中绘制多边形

java - 使用带 SI 的文件适配器移动文件

python - 匹配两个numpy数组以找到相同的元素

python - 通过将第一个列表中的第一行项目与第二个列表中的项目进行比较来创建新列表

java - 如果字符串具有相同的前缀和后缀,则删除字符串的最后 3 个字符

java - Java 中的抽象静态工厂方法 [getInstance()]?