spring增强访问者模式-改造后-jdk17 Pattern Matching
This commit is contained in:
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -11,7 +11,7 @@
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
4
pom.xml
4
pom.xml
@@ -12,8 +12,8 @@
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<org.springframework.version>5.1.0.RELEASE</org.springframework.version>
|
||||
</properties>
|
||||
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
package top.fjy8018.designpattern.pattern.creational.factorymethod;
|
||||
|
||||
import sun.misc.Launcher;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中
|
||||
|
||||
@@ -29,6 +29,14 @@ class DrawServiceTest {
|
||||
draw(new Factory());
|
||||
}
|
||||
|
||||
/**
|
||||
* 输出:draw factory
|
||||
*/
|
||||
@Test
|
||||
public void draw17() {
|
||||
draw17(new Factory());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void draw2() {
|
||||
Visitor drawVisitor = new DrawVisitor();
|
||||
@@ -52,4 +60,17 @@ class DrawServiceTest {
|
||||
}
|
||||
}
|
||||
|
||||
private void draw17(Node node) {
|
||||
DrawService drawService = new DrawService();
|
||||
if (node instanceof Building building) {
|
||||
drawService.draw(building);
|
||||
} else if (node instanceof Factory factory) {
|
||||
drawService.draw(factory);
|
||||
} else if (node instanceof School school) {
|
||||
drawService.draw(school);
|
||||
} else {
|
||||
drawService.draw(node);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user