Skip to content

Commit dc3a643

Browse files
committed
bug:EnumTypeStatusPlugin parseValue和parseName 应该为静态方法
1 parent d984b35 commit dc3a643

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/main/java/com/itfsw/mybatis/generator/plugins/EnumTypeStatusPlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ public InnerEnum generateEnum(CommentGenerator commentGenerator, IntrospectedTab
330330
innerEnum.getType(),
331331
new Parameter(fValue.getType(), "value")
332332
);
333+
mParseValue.setStatic(true);
333334
mParseValue.addBodyLine("if (value != null) {");
334335
mParseValue.addBodyLine("for (" + innerEnum.getType().getShortName() + " item : values()) {");
335336
mParseValue.addBodyLine("if (item.value.equals(value)) {");
@@ -348,6 +349,7 @@ public InnerEnum generateEnum(CommentGenerator commentGenerator, IntrospectedTab
348349
innerEnum.getType(),
349350
new Parameter(fName.getType(), "name")
350351
);
352+
mParseName.setStatic(true);
351353
mParseName.addBodyLine("if (name != null) {");
352354
mParseName.addBodyLine("for (" + innerEnum.getType().getShortName() + " item : values()) {");
353355
mParseName.addBodyLine("if (item.name.equals(name)) {");

src/test/java/com/itfsw/mybatis/generator/plugins/EnumTypeStatusPluginTest.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.junit.Test;
2727

2828
import java.io.IOException;
29+
import java.lang.reflect.Method;
2930
import java.sql.SQLException;
3031

3132
/**
@@ -118,18 +119,20 @@ public void reloadProject(SqlSession sqlSession, ClassLoader loader, String pack
118119
Assert.assertEquals(enumBreakLineFailType.invoke("getName"), "启用");
119120

120121
// 6. 测试 parse
121-
// parseValue
122-
Assert.assertNull(enumBreakLineSuccess.invoke("parseValue", null));
123-
Object em1 = enumBreakLineSuccess.invoke("parseValue", 0L);
122+
Class enumBreakLine = loader.loadClass(packagz + ".Tb$BreakLine");
123+
Method mParseValue = enumBreakLine.getMethod("parseValue", Long.class);
124+
Assert.assertNull(mParseValue.invoke("parseValue", new Object[]{null}));
125+
Object em1 = mParseValue.invoke("parseValue", 0L);
124126
Assert.assertEquals(em1.toString(), "SUCCESS");
125-
Object em2 = enumBreakLineSuccess.invoke("parseValue", 1L);
127+
Object em2 = mParseValue.invoke("parseValue", 1L);
126128
Assert.assertEquals(em2.toString(), "FAIL_TYPE");
127129

128130
// parseName
129-
Assert.assertNull(enumBreakLineSuccess.invoke("parseName", null));
130-
Object em3 = enumBreakLineSuccess.invoke("parseName", "禁用");
131+
Method mParseName = enumBreakLine.getMethod("parseName", String.class);
132+
Assert.assertNull(mParseName.invoke("parseName", new Object[]{null}));
133+
Object em3 = mParseName.invoke("parseName", "禁用");
131134
Assert.assertEquals(em3.toString(), "SUCCESS");
132-
Object em4 = enumBreakLineSuccess.invoke("parseName", "启用");
135+
Object em4 = mParseName.invoke("parseName", "启用");
133136
Assert.assertEquals(em4.toString(), "FAIL_TYPE");
134137
}
135138
});

0 commit comments

Comments
 (0)