Tips To Solve the error “cannot be resolved to a variable” In Java

Java is a renowned programing language programmers and developers are using it for creating various applications, be it games, web, mobile, or desktop. Creating applications in Java is quite simpler, and that’s the reason it is used all over the world. It is a server-side language that helps programmers bridge the gap and also helps programmers develop back-end projects like Android. It is also used for mobile computing as well as a desktop and numerical computing. Java is a frequently used programming language that has also been a part of the news with new updates and versions to let programmers make projects with ease. Even beginners are trying their best to learn Java to become a pro in programming. When you are working with Java, you can experience the error “cannot be resolved to a variable” in Java.

Java errors are common, though seem irritating. The determination to solve the error is the right spirit. At least it is the only way to solve the error. As you came here to solve the error, we will not let you go empty-handed. Let’s first explore how the error occurs

How the error pops up

When you are working with the variable, you get the following error message

cannot be resolved to a variable 

How To Fix the Error “cannot be resolved to a variable” In Java

To fix the error, you need to know the scope of the variable. It is used for programming, in fact, an integral part of the program where the variable is accessible or considered valid. It is used to declare a variable inside the block, scope. It starts and ends with an opening and closing curly brace, respectively.

Within the scope, variables run with no error. When you get the error, the reason can vary depending on each variable. Let’s figure out the cause and solution of variables

Local Variable Error

Local variables are created inside a block, constructor, or method. You can’t access local variables outside the block, constructor, or method. These are only visible within and values are not allowed to be changed outside of the block. Let’s take a look at the example

package variablePrograms; 
public class School 
   // Declare instance variables. 
   public String name = "Smith"; 

   // Declaration of constructor. 
     int id = 128; 
     System.out.println("Id of Student: " +id); 

   // Declaration of user-defined method in instance area. 
   public void mySchool()
      // Declaration of local variables. 
       String schoolName = "ABC"; 
       System.out.println("Name of School: " +schoolName); 

  public void mySchool1()
      System.out.println("Name of School: " +schoolName)// Not possible because local variables cannot be accessed from outside the method, constructor, or block. 

  public static void main(String[] args) 
     // Create the object of class 'School'. 
    School sc = new School(); 


Id of student: 128
Name of School: ABC

In this example, you can’t call the ‘SchoolName’ outside the mySchool() method and the scope as it is the basic rule of the local variable. If you try to access outside the method, you end up with the error warning. 

Private Access Variables Error

Unlike the previous one, you should access private variables outside the method, block, or constructor. If you access it inside, you will get the error message. So, in order to avoid it, access it outside. Have a look at the example

public class Main 
    public static void main(String args[]) 
        int var  =3;  
        // scope is a limited within main Block;
        // The Scope of var Amount Is Limited..........
        // Accessible only Within this block............

    public static void Calculate (int amount)
      // The Scope of Variable Amount Is Limited..........
      // Accessible only Within this block............


We shed light on the solution to handle “cannot be resolved to a variable” in Java. The scope of variables is discussed as each variable has its scope.

I hope you find it helpful!

Leave a Reply

Your email address will not be published. Required fields are marked *