Добрый день. Я изучаю java последние несколько месяцев. Поэтому я создал общий массив следующим образом.Работа с генераторными массивами
public class Implementation<T> implements IMatrix<T>{
private T[][] genMatrix;
private Integer numberRows;
private Integer NumberCols;
public Implementation(){
generateMatrix();
for(int i = 0;i< numberRows;i++)
{
for(int j =0;j< numberCols;j++)
{
JOptionPane.showInputDialog("Enter value for row " + (i+1) + " and for column " + (j+1)))
}
}
multiplyScalar(5);
}
//generate the array
public void generateMatrix(){
String rowString = JOptionPane.showInputDialog("Enter the number of rows!");
numberRows = Integer.parseInt(rowString);
String colString = JOptionPane.showInputDialog("Enter the number of cols!");
numberCols = Integer.parseInt(colString);
final Object[][] arrayO = (T[][])new Object[numberRows][numberCols];
genMatrix = (T[][])arrayO;
}
//writeElements to the array;
public void writeElem(int x, int y, T value){
genMatrix[x][y] = value;
}
//now that those members are done I have created a method to access the data
public T getElem(Integer i, Integer j){
return (T)genMatrix[i][j];
}
Здесь моя проблема существует. Я сделал этот двухмерный массив. Я хотел бы умножить каждое значение в этом массиве на Integer c
. Я попытался сделать это следующим образом, и все провалилось.
public IMatrix<T> multiplyScalar(Integer c) throws MatrixException {
// TODO Auto-generated method stub
for(int i = 0; i< numberRows; i++)
{
for(int j=0;j<numberCols;j++)
{
/**
THIS IS THE POINT AT WHICH IT CRASHES
*/
System.out.println(((Integer)(getElement(i, j)) * c));
}
}
return null;
}
}
Программа вылетает из-за исключения ClassCastException. Я пробовал все, что было в моих силах, чтобы заставить это работать. Я не могу умножить двумерный массив на Integer. Пожалуйста помоги. Это использует интерфейс со многими другими функциями, которые не имеют отношения к делу. Обратите внимание, что существует большая вероятность того, что этот код сработает, поскольку я не могу загрузить исходный код.
является '' T' Integer' при запуске программы? Если не актерский состав не может работать ... – assylias
Здесь объясняется спокойно. http://stackoverflow.com/questions/10468853/predefining-multiplication-for-generics-in-java – user1945457
@assylias no T не является Целочисленным. Как я могу получить Integer – Jonathan