бросить новое RuntimeException («скомпилированный код»)? - PullRequest
4 голосов
/ 06 августа 2010

Я только что посмотрел код 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 ]

7 голосов
/ 06 августа 2010

Исходя из фрагмента кода, который вы разместили, я предполагаю, что вы смотрите файл * .class, а не файл * .java?

Если это так, то есть "скомпилированный код" и // скомпилированный кодиз-за того, что ваша IDE пытается дать вам некоторое читаемое представление этих скомпилированных классов * .java, вы можете хотя бы взглянуть на то, какие методы доступны в этом классе.

«Скомпилированный код» неПовторите правильное сообщение об ошибке, которое выдается при возникновении исключения RunTimeException.

Представление файлов * .class отличается в каждой среде IDE (eclipse, intelliJ, ..)

Если вы хотитечтобы иметь возможность взглянуть на исполняемый код, вам понадобятся нескомпилированные файлы * .java.

2 голосов
/ 06 августа 2010

Вы в основном перешли к файлу класса Java, к которому не было прикреплено ни одного исходного файла.

Вы видите MediaType.class файл, представленный IDE NetBeans.Это в основном тот же вывод, который вы увидите, вызвав javap MediaType.class.Исключения существуют только для предупреждения Вас.Это не true содержимое файла.Вы видите только сигнатуры методов и открытые поля, так как они все равно предоставляются файлом .class.Остальное - реализация, которая была опущена, так как без исходного кода вы можете получить только машинный код (вы действительно хотите в него покопаться? Скорее всего, вы предпочитаете читать другую документацию или найти источник в Google).JDK делится на публичные и частные интерфейсы программирования.Публичная хорошо документирована и поставляется с исходным кодом.Это не всегда то же самое с частной частью API.

1 голос
/ 13 апреля 2011

Чтобы добавить к другим ответам, вы можете просмотреть содержимое файла .class (выполненные инструкции), используя декомпилятор.Хорошим является Java Decompiler на http://java.decompiler.free.fr/

0 голосов
/ 06 июля 2011

У меня "тот же" код в файле 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");
    }

    ...

}

Но функционального кода нет!Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...