gpt4 book ai didi

java - 使用代码覆盖工具时,在此之前的构造函数中的代码或生成的类文件中的 super 代码

转载 作者:搜寻专家 更新时间:2023-11-01 03:24:25 26 4
gpt4 key购买 nike

我正在使用 google code pro Analatics 来测量代码覆盖率。

源代码

public class StackArray<T> implements Stack<T> {
private int top;
private T[] elements;

public StackArray(Class<T> type, int size) {
top = -1;
elements = (T[]) Array.newInstance(type, size);
}

//Other stack related methods
}

生成类文件

import com.vladium.emma.rt.RT;
import java.lang.reflect.Array;

// Referenced classes of package ds.stack:
// Stack

public class StackArray implements Stack {

private int top;
private Object elements[];
private static final int $VRc[][]; /* synthetic field */
private static final long serialVersionUID = 0x927be770ed420794L; /* synthetic field */

public StackArray(Class type, int size)
{
int ai[] = ($VRc != null ? $VRc : $VRi())[0];
super();
top = -1;
elements = (Object[])Array.newInstance(type, size);
ai[0] = ai[0] + 1;
}
}

我的问题是在这个或 super 之前的构造函数中如何允许这一行

int ai[] = ($VRc != null ? $VRc : $VRi())[0];

最佳答案

super()this() 仅允许作为构造函数中的第一条指令的限制是 Java 编译器强加的限制,而不是字节码/对象类。

“生成的类文件”要么是在常规 Java 编译器下无法编译的对象类的反编译,要么与允许此类构造的更改后的 Java 兼容。在这两种情况下,代码看起来 99% 都是 Java 源文件,但事实并非如此。

关于java - 使用代码覆盖工具时,在此之前的构造函数中的代码或生成的类文件中的 super 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18555968/

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