2015-07-07 4 views
-8

Я пытался преобразовать объект в строку, а затем присвоил этому строковому значению строку, которую я уже определил.не может ввести значение для строки?

В настоящее время у меня есть это

public static final String stringthing; 

^так в начале кода я довольно много сказал, у меня есть строка, но я не присвоили ему значение.

Когда я пытаюсь преобразовать объект в строку, а затем установить эту строку, равную моему неназначенному строковому значению «stringthing« Я все время получаю »неожиданный тип, найденное значение требует переменной». Я не понимаю, почему я не могу присвоить это строковое значение stringthing?

for (Object student : students) { 
    System.out.println(student.toString())=stringthing; 
} 

Я видел другие темы относительно «неожиданного типа, найденное значение требуется переменным», в котором я видел только вещи, ориентируя вокруг целых, но я не понимаю, почему это не является законным или хорошо в Java? Есть ли что-то синтаксическое, что я не понимаю?

+0

'System.out.println()' не является 'переменной', это' метод'. Вы не можете назначить что-либо 'System.out.println()'. – brso05

+1

Вы можете, однако, сделать это: 'stringthing = student.toString(); System.out.println (stringthing);' – brso05

+1

Кроме того, что это очень простой вопрос, в этом нет ничего плохого. Это очень важный вопрос со всеми подробностями. Так почему же так много downvotes? – Codebender

ответ

5
System.out.println(...); 

ли печатать строку в стандартный вывод

, если вы хотите назначить student.toString() для stringthing, а затем сделать:

stringthing = student.toString(); 

И после того, как вы можете сделать:

System.out.println(stringthing); 
+0

** Печать ** строка в std ** в **? – mastov

+0

да, небольшая ошибка, отредактирована, спасибо;) – VLef

2
System.out.println(student.toString()) 

Это вызов метода, который печатает то, что возвращается student.toString(). Вы не можете присвоить значение этому вызову метода. Это просто невозможно.

У вас там большое смешение. Что бы вы ни пытались, вы делаете все это неправильно.

2
public class Foo { 

    public static String stringthing; 
    public static List<Object> students; 

    // [...] 

    public static void bar() { 
     for (Object student : students) { 
     stringthing = student.toString(); 
     System.out.println(stringthing); 
     } 
    } 
} 

Это то, что вы пытаетесь сделать?

Сначала вы не можете сбросить значение конечной переменной, поэтому оно должно быть «нефинализированным». Второе назначение было неправильным.

+0

В основном это похоже, вот что я пытаюсь сделать. Я просто пытаюсь превратить ученика в строку, а затем сохранить в «stringthing». – obito94