Search code examples
androidfindbugsspotbugs

getEncryptedData(String) invokes inefficient new String(String) constructor - Findbugs


I'm trying to convert byte[] to String.and its working fine. But FindBugs is pointing me a Minor issue in my code snippet.

code snippet:

        //Encrypt the data withe public key.
        Cipher cipher = Cipher.getInstance(TRASFORMATION);
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        byte[] encryptedBytes = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8));
        encryptedData = new String(Base64.encodeToString(encryptedBytes, Base64.DEFAULT));

Findbug Report:

getEncryptedData(String) invokes inefficient new String(String) constructor

In which line i'm getting this Error?

encryptedData = new String(Base64.encodeToString(encryptedBytes, Base64.DEFAULT));

Could some one please brief me what is this exactly? And how can we solve this?


Solution

  • Replace

    encryptedData = new String(Base64.encodeToString(encryptedBytes, Base64.DEFAULT));
    

    with

    encryptedData = Base64.encodeToString(encryptedBytes, Base64.DEFAULT);
    

    Encode to String is already returning the string.