Создание экземпляра статического класса внутри другого класса - PullRequest
1 голос
/ 24 октября 2011

Я пишу приложение Clojure, которое использует BouncyCastle для шифрования данных при передаче через Интернет.Однако BouncyCastle имеет несколько очень странно написанных классов, особенно один, называемый ECCurve (эллиптическая кривая).Это просто абстрактный класс, расширенный двумя классами Fp и F2m (различные виды кривых).Тем не менее, они написаны как открытые статические классы внутри ECCurve (а не в отдельных файлах).

Итак, вопрос в том, когда я создаю экземпляр класса, объявленного как статический внутри другого,абстрактный класс, как я к нему обращаюсь?Я пробовал это:

(def curve (new ECCurve.Fp params)) ; naive, I know (ECCurve is imported btw)
(def curve (new ECCurve/Fp params))
(def curve (new (. ECCurve Fp) params))
(def curve (new (ECCurve/Fp) params))
(def curve (new org.bouncycastle.math.ec.ECCurve.Fp params))

... но ни одна из этих работ (компилятор говорит, что было выброшено ClassNotFoundException).Есть идеи, как это сделать правильно?

Спасибо, Дэвид

1 Ответ

5 голосов
/ 24 октября 2011

ECCurve$Fp является реальным именем класса.Javac позволяет использовать ECCurve.Fp в качестве синтаксического сахара.

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