首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用代码覆盖率工具时,在构造函数中的代码在this之前或在生成的类文件中的super值

使用代码覆盖率工具时,在构造函数中的代码在this之前或在生成的类文件中的super值
EN

Stack Overflow用户
提问于 2013-09-01 14:45:34
回答 1查看 158关注 0票数 4

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

源代码

代码语言:javascript
复制
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
}

生成的类文件

代码语言:javascript
复制
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;
    }
}

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

代码语言:javascript
复制
int ai[] = ($VRc != null ? $VRc : $VRi())[0];
EN

回答 1

Stack Overflow用户

发布于 2013-09-01 15:05:53

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18555968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档