+ All Categories
Home > Technology > Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên...

Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên...

Date post: 26-May-2015
Category:
Upload: khoa-nguyen
View: 1,003 times
Download: 0 times
Share this document with a friend
Popular Tags:
31
Java Reflection API & Reference Object Prepared by: Group 5 Nguyen Dang Khoa 071222 0 Diep Lan Quynh 071236 0 Le Thi Nhu Quynh 071235 8 HoChiMinh University of Science Java Programming Course December 2010
Transcript
Page 1: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Java Reflection API& Reference Object

Prepared by: Group 5

Nguyen Dang Khoa 0712220

Diep Lan Quynh 0712360

Le Thi Nhu Quynh 0712358

HoChiMinh University of ScienceJava Programming Course

December 2010

Page 2: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Agenda

Introduction Java Reflection API

java.lang.Class class

Class Member

Array and Enum

Advantage & Disadvantage

Plug-in Programming

Page 3: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Introduction

• What does “Reflection” mean ?• What’s Java Reflection API ?• Java Reflection API• Usage• “Hello Reflection” Demo

3

Page 4: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Introduction…

• What does “Reflection” mean ?In computer science, reflection is the process by which a computer program can observe and modify its own structure and behavior at runtime[1].

4

Page 5: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Introduction…

5

An Java program contains many objects. Java Reflection API includes classes, interfaces support developer can retrieve and manipulate its object at runtime.

What’s Java Reflection API?

Page 9: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Introduction…

• Usage Program Extensibility IDE’s Visual Assistant Visual Debugger & Tester Tools Object Relational Mapping Application Server Deploy Configuration

9

Page 10: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Agenda

Introduction Java Reflection API

java.lang.Class class

Class Member

Array and Enum

Advantage & Disadvantage

Plug-in Programming

Page 11: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

java.lang.Class class

• Kind of Java types• Class object• How to get a Class object • How to get Class’ members object• Instantiate a new object from its Class

11

Page 12: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

java.lang.Class class …

Kind of Java types• Primitive type

e.g : int, double, float, short, long, byte, char, void• Reference type

e.g : class, interface, array, enum, annotation

12

Page 13: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

java.lang.Class class…

Class object• Instances of the class Class represent

classes and interfaces in a running Java application.

• Has no public constructor.• Are constructed automatically by the Java

Virtual Machine as classes are loaded and by calls to the defineClass method in the class loader.

13

Page 14: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

java.lang.Class class…

How to get a Class object• getClass() method• .class syntax• forName() static method • .TYPE syntax• Other methods

14

Page 15: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

java.lang.Class class…

How to get Class’ members object

15

Get Constructors

Constructor<T> getConstructor(Class<T>… parameterTypes)

Constructor<?> [] getConstructors()

Constructor<T> getDeclaredConstructor(Class<T>… parameterTypes)

Constructor<?> [] getDeclaredConstructors()Get Fields Field getField(String fieldName)Field [] getFields()Field getDeclaredField(String fieldName)Field [] getDeclaredFields()

Page 16: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

java.lang.Class class…

How to get Class’ members object

16

Get Methods

Method getMethod(String name, Class<T>… parameterTypes)

Method [] getMethods()

Method getDeclaredMethod(String name, Class<T>… parameterTypes)

Method [] getDeclaredMethods();Get Modifiers int getModifiers()

Page 17: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

java.lang.Class class…

How to get Class’ members object

17

Get Package

Package getPackage()

Other methods

Ref : JDK Document

Page 18: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Agenda

Introduction Java Reflection API

java.lang.Class class

Class Member

Array and Enum

Advantage & Disadvantage

Plug-in Programming

Page 19: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Class member

• java.lang.reflect Constructor Field Method

19

Page 20: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Class member…

• ConstructorGet information

• Class<T> getDeclaringClass()• Class<T> [] getParameterTypes()• int getModifiers()

Instantiate new object• newInstance(Object … initArgs)

20

Page 21: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Class member…

• FieldGet information

Class<T> getDeclaringClass() Class<T> getType() int getModifiers()

Get field’s value of an object Object get(Object obj)

Set field’s value of an object• set(Object obj, Object value)

21

Page 22: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Class member…

• Getting Field’s Value Example

22

Class c = Integer.class; //get a private instant field Field field = c.getDeclaredField("value"); field.setAccessible(true); System.out.format(field.get(new Integer(10)));

//get a public static field field = c.getField("MAX_VALUE"); System.out.format(field.get(null));

Page 23: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Class member…

• Setting Field’s Value Example

23

Class c = Integer.class; Integer i = new Integer(10);//get a private instant field Field field = c.getDeclaredField("value"); field.setAccessible(true); System.out.format(field.set(i, new Integer(20)));

//get a public static field field = c.getField("MAX_VALUE"); System.out.format(field.set(null, new Integer(20)));

Page 24: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Class member…

• Method–Get information

• Class<T> getDeclaringClass()• Class<T> [] getParameterTypes()• int getModifiers()• Class<T> getReturnType()

– Invoke method• Object invoke(Object obj, Object … initArgs)

24

Page 25: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Class member…

• Invoke a method example

25

Method f = Math.class.getMethod("sqrt", new Class[]{double.class});

Object[] args = {new Double(10)};//invoke a static method Double d = (Double) f.invoke(null, args); double y = d.doubleValue(); System.out.println(y);

Page 26: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Agenda

Introduction Java Reflection API

java.lang.Class class

Class Member

Array and Enum

Advantage & Disadvantage

Plug-in Programming

Page 27: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Array and Enum

• Array (java.lang.reflect package) Get array’s information Instantiate a new array dynamically Set/Get array component’s value

• Enum Get enum’s information Set/Get enum component’s value

27

Page 28: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Agenda

Introduction Java Reflection API

java.lang.Class class

Class Member

Array and Enum

Plug-in Programming

Advantage & Disadvantage

Page 29: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Plug-in Programming

29

ApplicationApplication

Plugin Container

SQL MySQL Oracle

Page 30: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

Advantage & Disadvantage

Advantage• Dynamic Programming• Avoid hard-coding

Disadvantage• Performance• Security

30

Page 31: Cuối cùng cũng đã chuẩn bị slide xong cho seminar ngày mai. Mai seminar đầu tiên luôn

31

Q & AThanks you!


Recommended