2017-03-09 18 views
5

Ví dụ, trong Haxe tôi có thể tạo gõ đúng: var a:Float = 1.1; hoặc var b:String = "hello" và cũng năng động, nếu cần thiết:Làm cách nào để tạo các biến động trong Java? biến

var d:Dynamic = true; d = 22; d = "hi";

Làm thế nào để tạo ra loại biến trong Java?

+1

'Object' Tôi nghĩ là những gì bạn đang tìm kiếm. –

Trả lời

11

Bạn có thể sử dụng Object

Object d = true; 
d = 22; 
d = "hi"; 

và bạn có thể sử dụng instanceof điều hành để kiểm tra kiểu dữ liệu d đang nắm giữ

Object d = true; 
System.out.println(d instanceof Boolean); // true 
d = 22; 
d = "hi";  
System.out.println(d instanceof Integer); // false 
System.out.println(d instanceof String); // true 

The Type Comparison Operator instanceof

+2

Sử dụng 'instanceof' là một mã nguồn, thường là đi từ một phân tích loại thiếu sót, và có xu hướng tạo ra mã lộn xộn, lỗi, trừ khi bạn biết bạn đang làm gì. –

+0

@Lew, bạn chính xác 100%. Nhưng anwser được đăng lại sẽ lặp lại câu hỏi. –

+0

Tôi mong đợi một biến động để giải quyết việc sử dụng trong thời gian chạy, như là «động lực' của C#. Nghĩa là, 'd.foo()' sẽ kiểm tra tại thời gian chạy 'd' có phương thức' foo'. – chris

1

động gõ là ác quá Java tránh làm nó . Giống như Swift và C#, Java được đánh máy mạnh mẽ, dẫn đến mã an toàn hơn và sạch hơn. Vì vậy, đưa vào Dark Side và đặt sang một bên cách nổi loạn của bạn. Embrace sức mạnh của lập trình hướng kiểu. Bạn sẽ tốt hơn cho nó.

+0

C# có 'động' để nhập động. Nó hữu ích trong một số kịch bản cụ thể như JSON và tương tác với COM. – chris

+0

Tôi đồng ý, tôi tránh năng động ở mọi nơi có thể, tôi thích cách tiếp cận được đánh máy mạnh mẽ. Tôi chỉ cần tìm hiểu về một số trường hợp đặc biệt. – shal

1

Bạn có thể xem xét việc trộn lẫn trong ngôn ngữ groovy chạy trên JVM. Điều này có loại inferrance

+0

Java có suy luận kiểu. Kiểu suy luận không phải là gõ động. Loại suy luận là một chiến lược để gõ mạnh mẽ. –

Các vấn đề liên quan