Следующий код C # генерирует исключение NullReferenceException, а не print 1:
static void SomeMethod(string format, params object[] args)
{
Console.WriteLine(args.Length);
}
static void Main(string[] args)
{
SomeMethod("blabla", null, "Ok here"); // print 2
SomeMethod("blabla", null); // exception
}
Классы Nimbus находятся здесь, в моей установке Mac 1.6:
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Classes/classes.jar
, и я бы jad их, если вам нужен источник. Я использую JadClipse для просмотра исходного кода jad'а внутри Eclipse. Это, конечно, не идеально, но в крайнем случае.
Вы также можете получить исходный код JDK 1.6 здесь:
Если вы его извлечете, вы можно найти исходный код Nimbus в Work / j2se / src / share / classes / com / sun / java / swing / plaf / nimbus
Так что теоретически можно подключить его к classes.jar и, возможно, заставить что-то работать.
Исходный код JDK может быть получен (под разными лицензиями) на OpenJDK . Однако я не уверен, как вы собираетесь интегрировать его с IntelliJ.
Исходный код предоставляется при установке JDK. Найдите src.zip в каталоге JDK.
Там есть большинство пакетов Java, я уверен, что Swing тоже будет там.
К сожалению, исходный код этих библиотек распространяется не часто. Если вы хотите проверить код, вы можете загрузить декомпилятор и декомпилировать jar-файлы в своей установке.
Вот ссылка на википедию , в которой есть несколько дополнительных ссылок на сайты загрузки для JAD, декомпилятора, который сделаю свою работу.
Лучше всего, как указывали другие, декомпилировать код.
Однако все остальные предлагали JAD, мне это не очень нравится. JD-GUI - НАМНОГО лучший декомпилятор, так как он может просматривать jar-файлы и ссылаться на источники, чтобы вы могли намного проще проверять код. Я легко разобрал довольно сложный код с помощью этого.
On the Mac, the sources to the JDK aren't bundled by default.
You'll need to download the XCode stuff from the Apple Developer Network - there's an installable package in that download for the JDK sources. Whether it contains the com.* stuff or not is a different question ;-)