From fdcaedfc0d3032888f84ef7105eef96a50fc5562 Mon Sep 17 00:00:00 2001 From: "shengzu.xue" Date: Wed, 30 Apr 2025 10:23:14 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-153340=20=E4=BF=AE=E5=A4=8DSCA=E6=89=AB?= =?UTF-8?q?=E6=8F=8F=20Access=20Specifier=20Manipulation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用org.springframework.util.ReflectionUtils#makeAccessible 替代 java.lang.reflect.Field.setAccessible 方法 --- .../main/java/com/fr/design/actions/core/ActionFactory.java | 5 +++-- .../fr/design/data/tabledata/wrapper/TableDataFactory.java | 3 ++- .../main/java/com/fr/design/mainframe/DesignerContext.java | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java b/designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java index 3a8137f9d0..0f9d1532c3 100644 --- a/designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java +++ b/designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java @@ -9,6 +9,7 @@ import com.fr.design.selection.QuickEditor; import com.fr.design.ui.util.UIUtil; import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; +import com.fr.third.springframework.util.ReflectionUtils; import javax.swing.Action; import javax.swing.KeyStroke; @@ -241,7 +242,7 @@ public class ActionFactory { public static UpdateAction createAction(Class clazz) { try { Constructor c = clazz.getDeclaredConstructor(); - c.setAccessible(true); + ReflectionUtils.makeAccessible(c); return c.newInstance(); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); @@ -398,7 +399,7 @@ public class ActionFactory { } try { Constructor constructor = cClazz.getDeclaredConstructor(); - constructor.setAccessible(true); + ReflectionUtils.makeAccessible(constructor); return constructor.newInstance(); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java index 8345bde944..e3994bb17f 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java @@ -26,6 +26,7 @@ import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; import com.fr.stable.ArrayUtils; import com.fr.stable.StringUtils; +import com.fr.third.springframework.util.ReflectionUtils; import com.fr.workspace.WorkContext; import com.fr.workspace.server.authority.user.UserAuthority; @@ -117,7 +118,7 @@ public abstract class TableDataFactory { try { if (ComparatorUtils.equals(creatorClass, MultiTDTableDataPane.class) || ComparatorUtils.equals(creatorClass, TreeTableDataPane.class)) { Constructor constructor = creatorClass.getDeclaredConstructor(new Class[]{String.class}); - constructor.setAccessible(true); + ReflectionUtils.makeAccessible(constructor); datapane = (AbstractTableDataPane) constructor.newInstance(name); } else { datapane = creatorClass.newInstance(); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignerContext.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignerContext.java index 4079ae7b22..c36fa5283c 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesignerContext.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignerContext.java @@ -10,6 +10,8 @@ import com.fr.design.dialog.BasicDialog; import com.fr.design.file.HistoryTemplateListCache; import com.fr.log.FineLoggerFactory; import com.fr.stable.StableUtils; +import com.fr.third.springframework.util.ReflectionUtils; +import com.fr.third.v2.org.apache.poi.ss.formula.eval.RefListEval; import javax.swing.*; import java.awt.datatransfer.Clipboard; @@ -87,8 +89,7 @@ public class DesignerContext { try { Action transferAction = TransferHandler.getCutAction(); Method clipMethod = StableUtils.getDeclaredMethod(transferAction.getClass(), "getClipboard", new Class[]{JComponent.class}); - clipMethod.setAccessible(true); - + ReflectionUtils.makeAccessible(clipMethod); return (Clipboard) clipMethod.invoke(transferAction, new Object[]{comp}); } catch (Exception securityException) { FineLoggerFactory.getLogger().error(securityException.getMessage(), securityException);