反射-复习
1. 写出获取Class实例的三种常见方式
Class clazz1 = String.class
Class clazz2 = person.getClass(); //sout(person); //xxx.yyy.zzz.Person@...
Class clazz3 = Class.forName(String classPath); //体现反射的动态性

2. 谈谈你对Class类的理解
Class实例对应着加载到内存中的一个运行时类。即加载到内存中的一个类。

3. 创建Class对应运行时类的对象的通用方法,代码实现。以及这样操作,需要对应的运行时类构造器方面满足的要求。
Object obj = clazz.newInstance(); //创建了对应的运行时类的对象
   1. 必须有空参的构造器
   2. 权限修饰符的权限要够。通常设置为public

4.在工程或module的src下有名为jdbc.properties的配置文件,文件内容为:name=Tom。如何在程序中通过代码获取Tom这个变量值。代码实现

5.如何调用方法show()
类声明如下:
package top.qaqaq.java;
class User{
	public void show(){
		System.out.println("我是一个中国人!")
	}
}

User user = (User)clazz.newInstance();
Method show = clazz.getDeclaredMethod("show");
show.setAccessiable(true);
show.invoke(user);
package top.qaqaq.java.P659;

/**
 * @author RichieZhang
 * @create 2022-11-02 下午 6:25
 */
public class User {

    private String name;
    private int age;

    public User() {
    }

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void show(){
        System.out.println("我是一个中国人!");
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇