2012-05-20 2 views
7

jre поставляется со многими библиотеками в rt.jar, один из которых является com.sun.istack.internal *. Мне нужна документация com.sun.istack.internal.Nullable ( , которую я нашел в Google CacheBuilder ), и сначала я подумал, что нужно пойти на docs.oracle.com, чтобы найти его документацию, и там я ничего не нашел об этом. Затем пошла в исходную папку, полученную с помощью jdk, и я не нашел объект com name в указанной папке. Затем я взглянул на выпуск jre7 и взглянул на все пакеты и класс и не нашел упоминания о Nullable. Хотя у SO был один mention of it, но ничего конкретного. Я все еще озадачен тем, где, если нужно, получить его документацию и src. Я даже посмотрел документальную документацию sun api у оракула, но об этом не упоминалось. где оракул документирует там политику о портированных пакетах, и они являются стандартными или нестандартными. Они должны были документировать это где-то, это просто, что я занимаю слишком много времени, чтобы добраться туда.rt.jar com.sun.istack.internal packages

Пожалуйста, укажите меня там.

EDIT: На самом деле javax.annotation.Nullable используется в google CacheBuilder, а не com.sun.istack.internal.Nullable. Также для тех, кто может столкнуться с этой проблемой: javax.annotation.Nullable не является частью Java SE на данный момент и переносится в jsr305 jar. Поэтому, если вы планируете использовать CacheBuilder или просто просматриваете его код, добавьте jsr305 jar в свой путь к классу, иначе eclipse запутаться и укажет вам на com.sun.istack.intenal.Nullable, когда вы наведете курсор на Nullable ,

+0

Я считаю, что это всего лишь интерфейс маркера. Единственный комментарий в исходном файле говорит именно об этом. – Thihara

+0

Это аннотация фактически - 'public @interface Nullable' –

ответ

5

Вот ссылка на исходный код:

(Эта ссылка может сломаться в будущем, но вы должны быть в состоянии найти эквивалент, используя поиск Google.)

Причина, по которой вы не можете найти исходный код или javadocs в стандартных дистрибутивах JDK/JRE, заключается в том, что это класс INTERNAL. Существует давняя стратегия Oracle/Sun, препятствующая разработчикам писать код, зависящий от внутренних классов Java.

FWIW - это всего лишь аннотация, и смысл в значительной степени означает название класса.


UPDATE - По-видимому, реальная причина этой путаницы в том, что вы не включили банку JSR305 в вашем buildpath. Это зависимость от CacheBuilder. Завершение класса Eclipse делает все возможное ... но не удается.

+0

Это было написано Кохсуке Кавагути! С каких это пор он писал код для JDK? –

+0

Он работал в Sun, прежде чем он был куплен Oracle. Почему бы ему не написать код для JDK? Хадсон Дженкинс был написан в свободное время, AFAIK. –

+0

Спасибо, я знаю, что это аннотация. И даже тогда нам понравится иметь документацию. См. Комментарий к JB Nizet Post. – mawia

12

Guava не использует com.sun.istack.internal.Nullable. Все, что не зарегистрировано в официальном Java Java javadoc, является внутренним кодом и не должно использоваться в приложениях.

Возможно, вы ищете javax.annotation.Nullable, который является частью JSR305.

+0

@Override public boolean equals (@Nullable Object obj) { if (this == obj) { return true; } Один фрагмент из com.google.common.base. Эквивалентность и эквивалентность полны использования этой аннотации. – mawia

+0

См. Http://docs.guava-libraries.googlecode.com/git-history/v12.0/javadoc/src-html/com/google/common/base/Equivalence.html#line.26: javax.annotation. Неверный, как я уже говорил. –

+0

Ну, javax.annotation.Nullable, похоже, не предоставляется JSE, но есть ли в JSR305, eclipse ужасно запутался (наведите курсор на Nullable, он укажет вам на com.sun.istack.internal.Nullable), так как у меня не было jsr305. Поскольку он не мог разрешить javax.annotaion.Nullable, он путал Nullable, чтобы быть com.sun.istack.internal.Nullable. – mawia