I am trying to write a code that lets the user enter a team name. Here is my code:
public class Team {
public String name;
public static void main(Strin
static
methods do not allow to use the non-static variables directly because non-static/instance
variables are initialized in memory on object creation. Hence you need to create an object of the the class and then use the variable. Do something like this:
Team teamObj = new Team();
//now access name variable using teabObj instance
teamObj.name = tn.nextLine();
name
is a team name. So you need to instantiate a new Team
object and set its name :
public static void main(String[] args) {
System.out.println("Enter name team");
Scanner tn = new Scanner(System.in);
Team team = new Team();
team.name = tn.nextLine();
}
Create a Team object if you want.
Team team = new Team();
team.name = tn.nextLine();
You can use reflection as follows to access that non static field.
System.out.println("Enter name team");
Scanner tn = new Scanner(System.in);
Team team=new Team();
Field field=Team.class.getField("name");
field.set(team,tn.next());
System.out.println((String) field.get(team));
Live demo for reflection.
Or you can try as follows.
Team team = new Team();
team.name = tn.nextLine();
Live demo
Static methods/variables are bound to class. They have no access to non-static variables ( they have no idea on which instance of class they should call the method). You have to create object, and then call the non-static method.