What is the var keyword (local-variable type inference) in Java 10?
Jul 11, 2025 am 03:05 AMThe var keyword in Java 10 enables local-variable type inference, letting the compiler deduce the variable's type from its initializer. 1. It reduces redundancy and enhances readability when the type is evident. 2. It can only be used for local variables inside methods, not for fields, parameters, or return types. 3. Initialization is mandatory to allow type inference. 4. Use it judiciously—favor clarity over brevity when the inferred type isn't obvious or when working in team environments. 5. It works with primitives and objects but cannot directly infer lambda types without explicit casting.
The var
keyword in Java 10 is used for local-variable type inference, which means the Java compiler can automatically determine the data type of a local variable based on its initializer. This feature helps reduce boilerplate code and makes your code more readable — as long as it's used wisely.

Why Use var
?
Java has always been a statically-typed language, meaning you need to declare the type of every variable explicitly. For example:
String message = "Hello, world!";
With var
, you can write:

var message = "Hello, world!";
In this case, the compiler sees that "Hello, world!"
is a String, so it treats message
as a String. You don’t have to repeat the type name, especially useful when the type is long or nested.
This doesn't make Java dynamically typed — under the hood, the variable still has a fixed type determined at compile time.

When Can You Use var
?
You can only use var
for local variables inside methods, not for fields, method parameters, or return types. Here are some valid examples:
Declaring a basic variable:
var count = 10;
Using with collections:
var list = new ArrayList<String>();
In enhanced for loops:
for (var entry : map.entrySet()) { ... }
With complex generic types:
var data = new HashMap<Integer, List<String>>();
Note: You must initialize the variable when using
var
, otherwise the compiler can't infer the type.
Should You Always Use var
?
Not necessarily. While var
can improve readability, it can also hurt it if overused or used where clarity matters most.
Use var
when:
- The type is obvious from the context.
- It avoids repeating long or nested generic types.
- It improves code readability without hiding important details.
Avoid var
when:
- The type isn't clear from the right-hand side.
- You're initializing with
null
(since there's no way for the compiler to infer the type). - You're working in a team or codebase where explicit typing improves maintainability.
For example, avoid this:
var result = getSomething();
If getSomething()
could return multiple types or if the return type isn't obvious, it might confuse someone reading the code later.
A Few Things to Keep in Mind
var
is not a keyword in the traditional sense; it’s a reserved type name. That means you can’t use it as a variable name, but legacy code usingvar
as an identifier won’t break unless it's part of a local variable declaration.It works with both primitive types and objects.
You can’t combine it with lambda expressions directly unless the target type is clear.
? Invalid:
var runnable = () -> System.out.println("Running");
? Valid:
var runnable = (Runnable) () -> System.out.println("Running");
So, basically,
var
is a small but handy tool in Java 10 that can clean up your code — just don’t overdo it.The above is the detailed content of What is the var keyword (local-variable type inference) in Java 10?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Local variable type inference in Java10: How to use var keyword in try-with-resources statement Introduction: Java10 has made some improvements in local variable type inference. The introduction of the var keyword allows developers to omit the type when declaring variables, and the compiler will infer it. This article will focus on how to use the var keyword in the try-with-resources statement. 1. What is try-with-reso?

Local variable type inference in Java10: How to use var keyword in foreach loop Introduction: Java10 is an important version after Java9, which introduces many new features and improvements. One of the highly anticipated features is local variable type inference. In Java10, we can use the var keyword to declare local variables and let the compiler automatically infer the variable type based on the expression on the right. In this article, we will explore how to use

Java has introduced a new keyword var in the latest version Java11, which can replace type names that need to be explicitly declared, thereby simplifying code and improving readability. However, when using Lambda expressions, the var keyword sometimes causes a Local-VariableSyntaxforLambdaParameters error. This article will introduce the cause of this error, and how to deal with and avoid it. Why does this error occur? Before Java11, La

Local variable type inference in Java10: How to use the var keyword to simplify code Introduction: In Java10, the feature of local variable type inference is introduced. By using the var keyword, the code writing process can be simplified. This article will introduce the use of the var keyword and demonstrate its effect of simplifying the code through sample code. 1. What is local variable type inference? Local variable type inference means that when declaring local variables, you can use the var keyword instead of explicit type declaration. The compiler will express

Local variable type inference in Java10: How to use the var keyword in method parameters In Java10, a new feature is introduced - local variable type inference (LocalVariableTypeInference). This feature allows us to declare a variable without explicitly specifying the type of the variable and instead use the var keyword to infer it. Local variable type inference has great advantages in improving the readability and simplicity of code. It can reduce lengthy type declarations,

To deeply analyze the differences between var, let and const, specific code examples are required. In JavaScript, variable declaration is a very common operation. Before ES5, developers used the var keyword to declare variables. However, ES6 introduces two new keywords, let and const, which provide better variable management and scoping control. In this article, we’ll dive into the differences between var, let, and const and provide corresponding code examples to aid understanding. 1. Scope va

The way to define different types of variables in Golang requires specific code examples. In Golang, we can use different ways to define different types of variables. This article will introduce how to define several common variable types in Golang and provide corresponding code examples. 1. Integer variables (int) Integer variables in Golang can be used to store integer values. They are defined as follows: varnumint//Declare an integer variable num named num

ThevarkeywordinJava10enableslocal-variabletypeinference,lettingthecompilerdeducethevariable'stypefromitsinitializer.1.Itreducesredundancyandenhancesreadabilitywhenthetypeisevident.2.Itcanonlybeusedforlocalvariablesinsidemethods,notforfields,parameter
