Java reflection and anotation

Chúng tôi rất vui mừng chia sẻ kiến thức sâu sắc về từ khóa Java reflection la gi và hy vọng rằng nó sẽ hữu ích cho bạn đọc. Bài viết tập trung trình bày ý nghĩa, vai trò và ứng dụng của từ khóa này trong việc tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Chúng tôi cung cấp các phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với các chiến lược và công cụ hữu ích. Hy vọng rằng thông tin mà chúng tôi chia sẻ sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Xin chân thành cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog của chúng tôi để cập nhật những kiến thức mới nhất.

I. Java Reflection

Bạn Đang Xem: Java reflection and anotation

Reflection là một kĩ thuật được cho phép có thể duyệt và thay đổi các tính chất và phuơng thức của một class hoặc một interface tại thời khắc runtime, nó là một kĩ thuật rất mạnh và hữu ích cho những lập trình viên.

Khi đọc khái niệm này chắc hẳn các các bạn sẽ thắc mắc vậy reflection thường được sử dụng trong trường hợp nào?. Thật ra reflection thường khá ít được sử dụng và chỉ những lập trình viên có kinh nghiệm mới hay sử dụng nó. Có thể lấy một ví dụ về việc sử dụng reflection như sau:

Giả sử bạn có một đối tượng người tiêu dùng nhưng không hề biết kiểu của đối tượng người tiêu dùng này và bạn muốn gọi một phuơng thức “dosomething()” của đối tượng người tiêu dùng nếu nó tồn tại, điều này sẽ không phải dễ thực hiện nhưng reflection sẽ giúp thực hiện điều này .

Method method = foo.getClass().getMethod(“doSomething”, null); method.invoke(foo, null);

Nội dung bài viết này sẽ tập trung giới thiệu các thành phần cơ bản của Reflection và cách sử dụng reflection với anotation, một trong những trường hợp được sử dụng phổ quát khi vận dụng reflection trong java.

II. Các thành phần cơ bản của Reflection.

1.Java Reflection – Classes

Khi sử dụng java reflection để duyệt qua một class thì việc trước tiên thường phải làm đó là đã đoạt một đối tượng người tiêu dùng kiểu Class, từ các đối tượng người tiêu dùng kiểu Class tất cả chúng ta có thể lấy được những thông tin về:

Vậy làm thế nào để tạo một class object. Bạn Có thể tạo một đối tượng người tiêu dùng Class lúc biết được tên của Lớp tại thời khắc compile

Class myObjectClass = MyObject.class

Khi chúng ta không biết xác thực tên của lớp tại thời khắc compile nhưng bạn có một chuỗi String là tên gọi của lớp tại thời khắc runtime thì bạn cũng tồn tại thể tạo được class object cho lớp đó

Class class = Class.forName(className);

2.Java Reflection – Constructors

Các đối tượng người tiêu dùng lớp Constructor là những phuơng thức khởi tạo của một lớp. Reflection được cho phép lấy ra những Contructor từ Class Object

Class aClass = …//obtain class object Constructor[] constructors = aClass.getConstructors();

Bạn cũng tồn tại thể truy cập được đến thông số của khá nhiều Contructor, các thông số này đều được đưa về kiêủ Class.

Constructor constructor = … // obtain constructor – see above Class[] parameterTypes = constructor.getParameterTypes();

Tạo một đối tượng người tiêu dùng của một Lớp từ đối tượng người tiêu dùng Contructor

Xem Thêm : Hiện tượng Chimerism – hiện tượng loạn gen trong một cơ thể

Constructor constructor = MyObject.class.getConstructor(String.class); MyObject myObject = (MyObject)constructor.newInstance(“constructor-arg1”);

3.Java Reflection – Fields

Field là lớp các đối tượng người tiêu dùng đại diện thay mặt cho một tính chất của một lớp. Chúng ta cũng có thể duyệt và lấy ra các đối tượng người tiêu dùng này từ class object

Class aClass = …//obtain class object Field[] fields = aClass.getFields();

Set các giá trị cho Fields

Class aClass = MyObject.class Field field = aClass.getField(“someField”); MyObject objectInstance = new MyObject(); Object value = field.get(objectInstance); field.set(objetInstance, value);

4.Java Reflection – Methods

Như đã nói ở trước đó, khi chúng ta sử dụng java reflection bạn cũng có thể truy cập vào các phuơng thức của một lớp và gọi những phuơng thức này.

Đối tượng người dùng Method được get từ class object

Class aClass = …//obtain class object Method[] methods = aClass.getMethods();

Gọi phuơng thức từ đối tượng người tiêu dùng Method

//get method that takes a String as argument Method method = MyObject.class.getMethod(“doSomething”, String.class); Object returnValue = method.invoke(null, “parameter-value1”);

Ở nội dung bài viết này mình xin tạm dừng ở việc giới thiệu về Java Reflection. Ở nội dung bài viết tiếp theo mình sẽ giới thiệu với những bạn về Anotation và cách sử dụng Anotation cùng với Reflection.

Update: Phần giới thiệu về Annotation tôi đã viết xong trong link này: https://viblo.asia/p/annotation-su-dung-annotation-voi-reflection-trong-java-PDOkqXxyejx References https://docs.oracle.com/javase/tutorial/reflect/

http://tutorials.jenkov.com/java-reflection/constructors.html

You May Also Like

About the Author: v1000