- Java 11 and 12:New Features
- Mala Gupta
- 280字
- 2021-07-02 12:27:00
Explicit casting with inferred variables
Imagine that a co-programmer assigned 29 to an inferred local variable (let's say age), assuming that the compiler would infer the type of the variable age as byte:
var age = 29; // inferred type of age is int
However, the compiler would infer the type of the variable age as int, since the default type of an integer literal value is int. To fix the preceding assumption, you can either use the explicit data type or override the compiler's default inference mechanism by using explicit casting, as follows:
byte age = 29; // Option 1 - no type inference
var age = (byte)29; // Option 2 - explicit casting
Similarly, you can use explicit casting with other primitive data types, like char and float:
var letter = (char)97; // inferred type of letter is char var debit = (float)17.9; // inferred type of debit is float
Without the explicit casting in the preceding examples, variables that are assigned integer literal values would be inferred as int, and decimal as double.
The following example shows explicit casting with reference variables:
class Automobile {} class Car extends Automobile { void check() {} } class Test{ public static void main(String[] args) { var obj = (Automobile)new Car(); obj.check(); // Won't compile; type of obj is Automobile } }
- DevOps:軟件架構師行動指南
- 復雜軟件設計之道:領域驅動設計全面解析與實戰
- Apache ZooKeeper Essentials
- 企業級Java EE架構設計精深實踐
- TypeScript Blueprints
- Vue.js前端開發基礎與項目實戰
- C# 從入門到項目實踐(超值版)
- Implementing Cisco Networking Solutions
- Android底層接口與驅動開發技術詳解
- Linux Device Drivers Development
- Protocol-Oriented Programming with Swift
- PLC應用技術(三菱FX2N系列)
- Java零基礎實戰
- C++編程兵書
- App Inventor少兒趣味編程動手做