Как преобразовать объект типа byte [] в строку - PullRequest
0 голосов
/ 22 января 2020

У меня есть функция, которая получает объект типа bytes [], который мне нужно преобразовать как строку. Вот так мой код выглядит как

class TestClass {
    public static void main(String args[] ) throws Exception {

        byte b[] = "Hello".getBytes();
        convert(b);    
    }
    public static void convert(Object s){
        String str = new String(s);
        System.out.println("In method "+str);
    }
}

. Как и предполагалось, я создал новый объект String, передав массив bytes [] в качестве параметра. Это выдает следующую ошибку

TestClass.java:24: error: no suitable constructor found for String(Object) String str = new String(s);

По моему пониманию, это потому, что во время компиляции метод convert () знает "s" как объект, а не byte [].

Но Я не знаю, как это исправить.

Ответы [ 2 ]

2 голосов
/ 22 января 2020

Вы можете сделать один из двух способов:

  1. Тип объекта в byte[], как String str = new String((byte[])s);

или

изменить сигнатуру метода как public static void convert(byte[] s)
1 голос
/ 22 января 2020

Вы знаете, что используете byte[], поэтому вы можете просто указать это в сигнатуре метода:

public static void convert(byte[] s) {
    // Here ---------------^
    String str = new String(s);
    System.out.println("In method "+str);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...