public interface Sale { String saleComputer(double money); } public class Xiaomi implements Sale { @Override public String saleComputer(double money) { System.out.println(money+"元买了一台电脑"); return "电脑"; } } public static void main(String[] args) { Xiaomi Xiaomi=new Xiaomi(); Class<? extends Xiaomi> aClass = Xiaomi.getClass(); Sale XiaomiProxy = (Sale) Proxy.newProxyInstance(aClass.getClassLoader(), aClass.getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { //Object proxy, Method method, Object[] args 代理对象,执行的方法,方法的入参 //动态代理 可以对方法参数进行增强,方法返回值增强及方法体进行增强 double arg = (double) args[0]; Object invoke = method.invoke(Xiaomi, arg*0.9); return invoke+",键盘,鼠标"; } }); String s = XiaomiProxy.saleComputer(8000); System.out.println(s); }