From f358b087dfe6ee9450f38e15851d9fe6de024ec8 Mon Sep 17 00:00:00 2001 From: aoshiguchen <1052045476@qq.com> Date: Sat, 25 Jun 2022 19:44:01 +0800 Subject: [PATCH] =?UTF-8?q?aop=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../neutrino/core/aop/proxy/SubClassProxyFactory.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/proxy/SubClassProxyFactory.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/proxy/SubClassProxyFactory.java index c35c3faa..0d57fc37 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/proxy/SubClassProxyFactory.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/proxy/SubClassProxyFactory.java @@ -49,6 +49,7 @@ public class SubClassProxyFactory implements ProxyFactory { @Override public T get(Class clazz) { + Assert.notNull(clazz, "被代理类不能为空!"); Assert.isTrue(canProxy(clazz), String.format("类[%s]无法被代理!", clazz.getName())); try { return doGet(clazz); @@ -59,7 +60,12 @@ public class SubClassProxyFactory implements ProxyFactory { @Override public boolean canProxy(Class clazz) { - return !ClassUtil.isFinal(clazz) && !ClassUtil.isAbstract(clazz) && ClassUtil.isPublic(clazz) && !ClassUtil.isStatic(clazz); + return !ClassUtil.isFinal(clazz) + && !ClassUtil.isAbstract(clazz) + && ClassUtil.isPublic(clazz) + && !ClassUtil.isStatic(clazz) + && !ClassUtil.isInterface(clazz) + && Stream.of(clazz.getConstructors()).filter(e -> e.getParameterCount() == 0).count() > 0; } private T doGet(Class clazz) throws ReflectiveOperationException {