抛出新的RuntimeException(“编译代码”)?

时间:2010-08-06 13:35:14

标签: java exception java-ee

我刚刚查看了javax.ws.rs.core.MediaType的代码并想知道throw new RuntimeException("Compiled Code"),因为我以前从未见过它。我认为是一种“未实施”的形式,但不知道。

package javax.ws.rs.core;

import java.util.Map;
import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate;

public class MediaType {

  // some variables and constants ...

  public static MediaType valueOf(String string) throws IllegalArgumentException {
    //compiled code
    throw new RuntimeException("Compiled Code");
  }

  public MediaType(String string, String string1, Map<String, String> map) {
    //compiled code
    throw new RuntimeException("Compiled Code");
  }

  public MediaType(String string, String string1) {
    //compiled code
    throw new RuntimeException("Compiled Code");
  }

  ...

}

这是什么?

4 个答案:

答案 0 :(得分:7)

基于您发布的代码片段我假设您正在查看* .class文件而不是* .java文件?

如果是这样,那么“编译代码”和//编译代码就在那里,因为你的IDE试图给你一些可编程的* .java类的可读表示,所以你至少可以看看有哪些方法可用在那堂课。

“编译代码”绝不是抛出RunTimeException时给出的正确错误消息。

每个IDE(eclipse,intelliJ,..)中* .class文件的显示都不同

如果您希望能够查看已执行的代码,则需要未编译的* .java文件。

答案 1 :(得分:2)

您基本上导航到Java类文件,该文件尚未附加任何源文件。

您所看到的是NetBeans IDE代表的MediaType.class文件。它与您通过调用javap MediaType.class看到的输出基本相同。例外情况只是警告你。它不是文件的 true 内容。您只看到方法签名和公共字段,因为无论如何都是由.class文件公开的。其余的是省略的实现,因为没有源代码,你只能得到机器代码(你真的想深入研究吗?最有可能更喜欢阅读其他文档,或者在google上找到源代码。)

JDK分为公共和私有编程接口。公共文档有很好的文档,并附带源代码。它的私有部分并不总是一样。

答案 2 :(得分:1)

要添加到其他答案,您可以使用反编译器查看.class文件内容(已执行的说明)。一个很好的是http://java.decompiler.free.fr/

的Java Decompiler

答案 3 :(得分:0)

我在jar文件中有“相同”的代码。最近我正在使用这个jar文件,我不知道在哪里可以查看代码。在NetBeans中打开文件后,结果如下:

public class ConsolaEjecucion extends JFrame {

    private JPanel jContentPane;
    private JScrollPane jScrollPane;
    private JTextArea display;
    private JProgressBar barraProgreso;
    private JFrame frame;

    public ConsolaEjecucion(JFrame frame) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    private JPanel getJContentPane() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    ...

}

但是,功能代码不存在!感谢。