Java动态加载一个类的几种方法以及invoke

本文详细介绍了Java中动态加载类的多种方法,包括通过接口、属性和方法的反射机制。同时,重点讲解了Method的invoke方法及其使用,探讨了getMethods()与getDeclaredMethods()的区别,并阐述了反射机制在Java中的重要作用,如动态获取类信息、构造对象和调用方法等。
摘要由CSDN通过智能技术生成

一.加载一个类的几种方法

接口

IUser

package org.me.javaapp;

/**
 *
 * @author Administrator
 */
public interface IUser {
    
}

User.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.me.javaapp;

public class User implements IUser{
    private String  name;
    private int  id;

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }
}

主类

    public static void main(String[] args) throws ClassNotFoundException{  
    try{
            Class c1=Class.forName("org.me.javaapp.User");
            Class c2=User.class;
            Object o1=c1.newInstance();
            Object o2=c2.newInstance();
            User u1=new User();
            Class c3=u1.getClass();
            
            /*
            this.getClass.getClassLoader();
            // 使用当前类的ClassLoader  
            
            Thread.currentThread().getContextClassLoader();            
            // 使用当前线程的ClassLoader  
            
            ClassLoader.getSystemClassLoader(); 
            // 使 用系统ClassLoader,即系统的入口点所使用的ClassLoader。(注意,s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值