Skip to content

Commit 9dd438e

Browse files
author
crazy
committed
1
1 parent 640028e commit 9dd438e

4 files changed

Lines changed: 53 additions & 12 deletions

File tree

JavaBase/.classpath

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<classpath>
33
<classpathentry kind="src" path="src"/>
44
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
5-
<classpathentry kind="lib" path="D:/Program Files/eclipse/log4j-1.2.17.jar"/>
6-
<classpathentry kind="lib" path="D:/Program Files/eclipse/lombok.jar"/>
5+
<classpathentry kind="lib" path="D:/eclipse/log4j-1.2.17.jar"/>
6+
<classpathentry kind="lib" path="D:/eclipse/lombok.jar"/>
77
<classpathentry kind="output" path="bin"/>
88
</classpath>

JavaBase/src/com/_520it/reflect2/GetConstructorDemo.java

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com._520it.reflect2;
22

33
import java.lang.reflect.Constructor;
4+
import java.lang.reflect.Field;
5+
import java.lang.reflect.Method;
46

57
/**
68
* 通过反射获取构造器
@@ -18,9 +20,30 @@ public static void main(String[] args) throws Exception {
1820
//Class clazz3=(new User().getClass());
1921
Constructor[] con=clazz1.getConstructors();//将所有的构造器方法放置在通过constructor数组中
2022
System.out.println("打印数组的长度:"+con.length);
21-
/*for(Constructor c1:con){
22-
Syste
23+
for(Constructor c1:con){
24+
System.out.println(c1);
2325
}
24-
*/ }
26+
Constructor c1=clazz1.getDeclaredConstructor();
27+
User user1=(User) c1.newInstance();//获取一个实例对象
28+
System.out.println("-----------------------------");
29+
30+
Method[] m=clazz1.getDeclaredMethods();
31+
for (Method method : m) {
32+
System.out.println(method);
33+
}
34+
Method m1=clazz1.getDeclaredMethod("method2",String.class);
35+
//m1.invoke(user1, "李华");//通过invoke唤醒方法,即调用方法
36+
Field f1=clazz1.getDeclaredField("name");
37+
f1.setAccessible(true);
38+
f1.set(user1, "王五");
39+
System.out.println(f1);
40+
System.out.println("----------------------------------");
41+
System.out.println(c1);
42+
Constructor c2=clazz1.getDeclaredConstructor(String.class);
43+
System.out.println(c2);
44+
Constructor c3=clazz1.getDeclaredConstructor(String.class,int.class);
45+
System.out.println(c3);
46+
47+
}
2548

2649
}
Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,37 @@
11
package com._520it.reflect2;
22

33
public class User {
4+
private String name="张三";
5+
int age;
46
//定义构造器
57
public User() {
6-
8+
System.out.println("这是个无参的构造器");
79
}
810
public User(String name){
911

1012
}
11-
public User(String name,int age){
13+
private User(String name,int age){
1214

1315
}
16+
public String getName() {
17+
return name;
18+
}
19+
public void setName(String name) {
20+
this.name = name;
21+
}
22+
public int getAge() {
23+
return age;
24+
}
25+
public void setAge(int age) {
26+
this.age = age;
27+
}
28+
public void method1(){
29+
System.out.println("无参公共方法");
30+
}
31+
public void method2(String name){
32+
System.out.println("含有"+name+"的公共方法");
33+
}
34+
private void method3(String name){
35+
System.out.println("含有"+name+"的私有方法");
36+
}
1437
}

JavaBase/src/com/xinan/reflect/TestIntegerReflect.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)