【发布时间】:2016-06-07 16:58:42
【问题描述】:
我正在为 android 开发并使用 jitpack.io 从 git 编译 gradle
我正在尝试使用 git 中的这个库进行函数式编程:
fj - functional programmming for Java 7
即使所有内容都经过测试,我也运行了代码并得到了错误。
问题出在 GroupBy 类中:
源代码:
public Collection<Group<S,T>> execute(Collection<T> collection){
Hashtable<S, Group<S, T>> groups = new Hashtable<S, Group<S, T>>();
for (T item: collection){
S classification = grouper.select(item);
if (!groups.contains(classification)){
groups.put(classification, new Group<S, T>(classification));
}
groups.get(classification).add(item);
}
return groups.values();
}
反编译代码:
public Collection<GroupBy.Group<S, T>> execute(Collection<T> collection) {
Hashtable groups = new Hashtable();
Object item;
Object classification;
for(Iterator var3 = collection.iterator(); var3.hasNext(); ((GroupBy.Group)groups.get(classification)).add(item)) {
item = var3.next();
classification = this.grouper.select(item);
if(!groups.contains(classification)) {
groups.put(classification, new GroupBy.Group(classification));
}
}
return groups.values();
}
如果有任何帮助,我将不胜感激。
目前我看不出代码看起来不同的任何原因
谢谢
【问题讨论】:
-
反编译器实际上不会反编译为确切的源代码。因为它只看到字节码,它会尝试反编译为尽可能接近源代码的东西,但即使它应该做同样的事情,你也永远不会真正得到你以前拥有的确切代码
-
好的。我得到了答案... 1. 反编译的代码完全一样。这只是编译器2的代码转换和优化。我遇到的错误是因为我使用'contains'而不是'containKey'
标签: java android functional-programming java-7 jitpack