#java #arrays #string #casting
#java #массивы #строка #Кастинг
Вопрос:
Существует следующий код, в котором у меня возникает проблема, связанная с тем, что (String)
делает. Я предполагаю, что он принимает IR, который привязан к панели java (setvalue), преобразует memoryArray в строку и устанавливает значение IR в качестве этой строки, но я не уверен. Если да, то чем это отличается от выполнения toString(), поскольку оно также используется для преобразования массива в строку.
Кроме того, мне было интересно, можно ли это сделать в python просто.
public static final int IR = 1;
int address2 = 3;
Object[][] memoryArray = new Object[256][17];
int memR2 = address2/16;
int memC2 = address2 % 16 1;
IR.setValue((" " (String) memoryArray[memoryRow][memoryCol]).trim());
System.out.println(IR);
Ответ №1:
Приведение (String) memoryArray[memoryRow][memoryCol]
будет работать, только если массив содержит String
объект at [memoryRow][memoryCol]
, в противном случае создается среда выполнения ClassCastException
.
Это не то же самое, что вызов toString()
метода Object
, в который преобразуется объект любого класса String
. Если объект at [memoryRow][memoryCol]
имеет место быть null
, вызов toString
метода приведет к NullPointerException
.