2013-04-17 2 views
0
public static void main(String[] args) { 

Scanner input = new Scanner(System.in); 
System.out.println("Enter expression: "); 
String exp = input.nextLine().trim(); 

ExpressionTree exptree = new ExpressionTree1(); //new instance of ExpressionTree 
TreeNode root = new TreeNode(); 
root = exptree.parseOutsideExpression(exp); 
int evaluate = exptree.Compute(root); 
String answer = Integer.toString(evaluate); 
System.out.println("The evaluated expression is:" + answer); 

} 

class ExpressionTree{ 

Я смотрел на несколько примеров, и я заметил, что общий ответ, чтобы создать новый экземпляр вашего объекта в пределах основной(), который я «Я сделал, но я все равно получаю ту же ошибку, и я не понимаю, почему.нестатическая переменная не может это ссылаться из статической ошибки контекста

+2

Какую линию вы получаете ошибку в? Каково содержимое этой строки? – Justin

+2

Вы можете удалить reeNode root = new TreeNode(); , если вы просто собираетесь его перестроить на одну строку позже –

+0

, вам нужно иметь свой основной метод внутри какого-то класса – codeMan

ответ

0

Если ExpressionTree является внутренним классом того же класса с методом main(), возможно, проблема в том, что он не является статичным. Нестатические внутренние классы могут быть созданы только в нестатической коде ... см:

Java inner class and static nested class

Смежные вопросы

 Смежные вопросы