Есть ли какая-либо определенная причина, почему интерфейсы не компилируются в MyInterface.java, скомпилированный в .interface файл? Но любой класс компилируется в .class файл.!
Java относится к интерфейсам почти как к классам, например, они разделяют одно и то же пространство имен (вы не можете иметь интерфейс с тем же именем, что и класс), а скомпилированный интерфейс почти идентичен скомпилированному абстрактному классу.
Поэтому нет никакого смысла хранить их в другом формате или с другим расширением файла. Наоборот, это усложнило бы многие вещи. Например, когда вы загружаете класс или интерфейс по имени (Class.forName("my.class.name")) Java не знает, класс это или интерфейс. Если бы существовало два разных расширения, Java должна была бы попытаться найти файл "my/class/name.class", а затем "my/class/name.interface", вместо того, чтобы пытаться найти только первый.
Это должен быть просто комментарий, но можете ли вы опубликовать ответ XML код?
EDIT: Просто чтобы немного сузиться, я сделал простой тест и работал действительно хорошо:
<div id="foo">
<error>
<code>AccessDenied</code>
<message>Invalid according to Policy: Policy expired.</message>
<hostid> SZuQn5hTyf32j79AWUym1/si48oqjPifrx4goDVDLYYxc6cJVbbHroLJYcAM89+T</hostid>
</error>
</div>
Затем я сделал какой-то код jQuery на моем firebug:
$("#foo").find("message").text()
Может быть, вы можете дать аларм ($ («# foo») .html ())
и проверить
Что вы хотите, так это что-то, что поддерживает конвейерирование HTTP . Если вы еще не знакомы, вам следует ознакомиться с этой страницей.
Да, выберите libmicrohttp . Имеет поддержку SSL и т. д. и работает как в Unix, так и в Windows.
Однако Кристофер прямо на месте в своем комментарии. Если у вас есть время запуска для каждого ответа, вы не собираетесь много выиграть за счет конвейерной обработки. Однако если у вас есть только значительное время ответа на первый запрос, вы можете что-то выиграть.
С другой стороны, если каждый ответ имеет время запуска, вы можете получить много, не используя конвейерную обработку, а создать новый запрос для каждого объекта. Тогда у каждого запроса может быть свой поток, отсасывающий затраты на запуск параллельно. Все ответы будут отправлены «сразу» в оптимальном случае. libmicrohttp поддерживает этот режим работы в модели потока MHD _ USE _ THREAD _ PER _ CONNECTION
.
На Java имеются исходные файлы с именем .java и двоичные файлы с именем .class. Это просто выбор именования.
Кроме того, для классов java и интерфейсов не так сильно отличаются (класс просто содержит много дополнительной информации, такой как тела методов).
Так решили дизайнеры языка.
Это имеет смысл несколькими способами:
.class
файлы являются побочным продуктом, который обычно не виден и не манипулируется вручную. Честно говоря, я не могу придумать хорошую причину для того, чтобы иметь различные расширения для скомпилированных классов и интерфейсов. Почему важно различать между ними?
Это просто их выбор. Я бы не стал об этом беспокоиться. В любом случае это двоичный файл. Можно подумать: «Даже если это интерфейс, он все еще находится в файле .java».
Потому что цель состоит в том, чтобы указать, что файл представляет собой байт-код Java (и .class было выбранным для этого расширением), а не конкретную языковую конструкцию.
физическое представление байтового кода в файловой системе не имеет значения.
Важна логическая реализация (класс или интерфейс).