java - bad operand types for binary operator '+' -


this question has answer here:

i working on creating generic class manipulate matrices. here problem: when implement addition operation, "bad operand types binary operator '+'"

it says that:

first type: object second type: t t type-variable: t extends object declared in class matrix

is there way make addition?

here code:

public class matrix<t> {     private t tab[][];     public matrix( t tab[][])     {        this.tab = (t[][])new object[tab.length][tab[0].length];        for(int = 0; < tab.length; i++){             system.arraycopy(tab[i], 0, this.tab[i], 0, tab.length);         }     }      public matrix(int row, int column)     {        this.tab = (t[][])new object[row][column];     }      //other constructors...      public matrix addition(matrix othermatrix)     {         matrix tmp = new matrix(othermatrix.getrowlen(), othermatrix.getcollen());         for(int = 0; < tab.length; i++){             for(int j = 0; j < tab[0].length; j++){                 //the line error below                tmp.setelement(i, j, othermatrix.getelement(i, j) + tab[i][j]);             }         }          return tmp;     }      public int getrowlen(){         return tab.length;     }      public int getcollen(){         return tab[0].length;     }      public void setelement(int i, int j, t value){         tab[i][j] = value;     }      public void setelement( t tab[][])     {        this.tab = (t[][])new object[tab.length][tab[0].length];        for(int = 0; < tab.length; i++){             system.arraycopy(tab[i], 0, this.tab[i], 0, tab.length);         }     }      public t getelement(int i, int j){         return tab[i][j];     } } 

thanks in advance !

java doesn't support using + operator primitive numeric types , strings. here, can't use + operator between arbitrary objects.

you got object left hand side because othermatrix raw (untyped) matrix. got t right hand side because tab defined generically t.

you cannot overload operators in java, cannot have + defined t.

you may able want removing generics , using

private int tab[][]; 

or

private double tab[][]; 

depending on needs.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -