public static MathExpression makeExpression(StringTokenizer token){ MathExpression total; if(token.hasMoreTokens() != true) return null; else{ String temp; String express = "+-*/"; temp = token.nextToken(); if(temp.length() == 1 && express.indexOf(temp) >= 0){ switch(temp){ case "+" : total = new MathBinaryExpression.AddExpression(makeExpression(token), makeExpression(token)); break; case "-" : total = new MathBinaryExpression.SubExpression(makeExpression(token), makeExpression(token)); break; case "*" : total = new MathBinaryExpression.MultExpression(makeExpression(token), makeExpression(token)); break; case "/" : total = new MathBinaryExpression.DivExpression(makeExpression(token), makeExpression(token)); break; } } } return total; }
My compiler tells me that when I return total, it is wrong and uninitialized. But aren't I initializing it inside of my switch statement?
Please let me know how I can fix this and what I am doing wrong.