2013-04-05 3 views
0

Я получаю вышеуказанную ошибку в этой конкретной строке кода:нестатическая метод generatePublic (KeySpec) нельзя ссылаться из статического контекста

KeyFactory keyFactory=keyFactory.getInstance(keyAlgorithm); 

     EncodedKeySpec privateKeySpec=new PKCS8EncodedKeySpec(privateKeyBytes); 
     PrivateKey privateKey1=keyFactory.generatePrivate(privateKeySpec); 

Чтобы быть точным, это ошибка, я получаю:

GeneratePublicPrivateKeys.java:35: error: non-static method generatePublic(KeySp 
ec) cannot be referenced from a static context 
PublicKey publicKey1=KeyFactory.generatePublic(publicKey 
Spec); 

Примечание: Я прошел через эти посты
“Non-static method cannot be referenced from a static context” error
non static method cannot be referenced from a static context
и еще какое-то а nd Я пробовал предлагаемые там решения, но нет, они не решают мою проблему

Что мне делать?
Thankyou заранее :)

+0

'keyFactory.generatePublic', а не' KeyFactory.generatePublic'. – thejh

+0

@thejh ОК это сработало :) –

ответ

0

Вы должны изменить

KeyFactory.generatePublic(...) 

быть:

keyFactory.generatePublic(...) 

На данный момент ваш код пытается вызвать метод generatePublic, как если бы он был статичным (т.е. связанным с классом KeyFactory, а не с объектом этого типа). Вы должны вызвать этот метод в конкретном экземпляре класса - предположительно в объекте keyFactory, на который ссылается ваш первый фрагмент кода.

0

Попробуйте изменить эту строку:

PublicKey publicKey1=KeyFactory.generatePublic(publicKey 
Spec); 

к

PublicKey publicKey1=keyFactory.generatePublic(publicKey 
Spec);