会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132469个问题
Python 全系列/第四阶段:函数式编程和核心特性/内存管理(旧) 15646楼

package DynamicProxy.JDKProxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class JdkProxyFactory {
    /**
     * 动态生成代理对象
     */
    public static Object getObjectProxy(Object target){
        Class clazz = target.getClass();
        MyAspect myAspect = new MyAspect();

        //在JDK 中动态生成代理对象
        //参数1:类加载器  参数2:类实现的所有接口
        return Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), new InvocationHandler() {
            /**
             * 动态生成代理对象中的方法
             * @param proxy 动态生成的代理对象
             * @param method 目标方法的方法对象
             * @param args 传递到目标方法中的参数列表
             * @return
             * @throws Throwable
             */
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                myAspect.before();
                Object obj = method.invoke(target, args);
                myAspect.after();
                return obj;
            }
        });
    }
}
new InvocationHandler

他的invoke方法的三个参数怎么获取到的和method的invoke方法有什联系?

JAVA 全系列/第六阶段:项目管理与SSM框架/Spring 15647楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 15649楼

package com;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Date;

public class MyGameFrame extends Frame{
    Image   planeImg  = GameUtil.getImage("images/plane.png");//和下面那句的getImage都有红色下划线
    Image   bg  = GameUtil.getImage("images/bg.jpg");




    //初始化窗口
    public void launchFrame(){
        this.setTitle("飞机大战");
        this.setVisible(true);//窗口默认不可见,使其可见
        this.setSize(500,500);
        this.setLocation(300,300);


        //增加关闭窗口的动作
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }


    @Override
    public void paint(Graphics g) {

    }

    public static void main(String[] args)  {
        MyGameFrame frame = new MyGameFrame();
        frame.launchFrame();
    }
}

问题再上面批注了

JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 15651楼
JAVA 全系列/第六阶段:项目管理与SSM框架/RBAC实战 15652楼
Python 全系列/第二十三阶段:人工智能基础_机器学习理论和实战(旧)/Kaggle实战 15657楼
Python 全系列/第二十三阶段:人工智能基础_机器学习理论和实战(旧)/Kaggle实战 15658楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 15659楼
Python 全系列/第五阶段:数据库编程/redis 15660楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637