instanceofnew
This commit is contained in:
@@ -1,9 +1,15 @@
|
||||
package com.baeldung.instanceofalternative.enumallt;
|
||||
|
||||
public class Anatotitan extends Dinosaur {
|
||||
// polymorphism
|
||||
@Override
|
||||
public String move() {
|
||||
return "running";
|
||||
}
|
||||
|
||||
String behavior() {
|
||||
return "very aggressive";
|
||||
// non-polymorphism
|
||||
public String run() {
|
||||
return "running";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@ package com.baeldung.instanceofalternative.enumallt;
|
||||
public enum DinosaurEnum {
|
||||
Anatotitan {
|
||||
@Override
|
||||
public String behaviour() {
|
||||
return "Aggressive";
|
||||
public String move() {
|
||||
return "running";
|
||||
}
|
||||
},
|
||||
Euraptor {
|
||||
@Override
|
||||
public String behaviour() {
|
||||
return "Calm";
|
||||
public String move() {
|
||||
return "flying";
|
||||
}
|
||||
};
|
||||
|
||||
public abstract String behaviour();
|
||||
public abstract String move();
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
package com.baeldung.enumallt;
|
||||
package com.baeldung.instanceofalternative.enumallt;
|
||||
|
||||
public class Euraptor extends Dinosaur {
|
||||
// polymorphism
|
||||
@Override
|
||||
public String move() {
|
||||
return "flying";
|
||||
}
|
||||
|
||||
String behavior() {
|
||||
return "calm";
|
||||
// non-polymorphism
|
||||
public String flies() {
|
||||
return "flying";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.examplesetup;
|
||||
|
||||
public class Anatotitan extends Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "very aggressive";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.examplesetup;
|
||||
|
||||
public class Dinosaur {
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.examplesetup;
|
||||
|
||||
public class Euraptor extends Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "calm";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.getclassalt;
|
||||
|
||||
public class Anatotitan extends Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "very aggressive";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.getclassalt;
|
||||
|
||||
public class Dinosaur {
|
||||
|
||||
/*
|
||||
* String behavior() { return "default sound"; }
|
||||
*/
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.getclassalt;
|
||||
|
||||
public class Euraptor extends Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "calm";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.mapalt;
|
||||
|
||||
public class Anatotitan extends Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "very aggressive";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.mapalt;
|
||||
|
||||
public class Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "default sound";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.mapalt;
|
||||
|
||||
public class Euraptor extends Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "calm";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.baeldung.instanceofalternative.model;
|
||||
|
||||
public class Anatotitan extends Dinosaur {
|
||||
// polymorphism
|
||||
@Override
|
||||
public String move() {
|
||||
return "running";
|
||||
}
|
||||
|
||||
// non-polymorphism
|
||||
public String run() {
|
||||
return "running";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.baeldung.instanceofalternative.model;
|
||||
|
||||
public class Dinosaur {
|
||||
|
||||
public String move() {
|
||||
return "default movement";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.baeldung.instanceofalternative.model;
|
||||
|
||||
public class Euraptor extends Dinosaur {
|
||||
// polymorphism
|
||||
@Override
|
||||
public String move() {
|
||||
return "flying";
|
||||
}
|
||||
|
||||
// non-polymorphism
|
||||
public String flies() {
|
||||
return "flying";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.patternmatching;
|
||||
|
||||
public class Anatotitan extends Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "very aggressive";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.patternmatching;
|
||||
|
||||
public class Dinosaur {
|
||||
|
||||
String behavior() {
|
||||
return "default sound";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.patternmatching;
|
||||
|
||||
public class Euraptor extends Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "calm";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.polymorphism;
|
||||
|
||||
public class Anatotitan extends Dinosaur {
|
||||
|
||||
@Override
|
||||
public String behavior() {
|
||||
return "very aggressive";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.polymorphism;
|
||||
|
||||
public class Dinosaur {
|
||||
|
||||
public String behavior() {
|
||||
return "default sound of dinosaur";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package com.baeldung.instanceofalternative.polymorphism;
|
||||
|
||||
public class Euraptor extends Dinosaur {
|
||||
|
||||
@Override
|
||||
public String behavior() {
|
||||
return "calm";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,12 +2,12 @@ package com.baeldung.instanceofalternative.visitorspattern;
|
||||
|
||||
public class Anatotitan implements Dino {
|
||||
|
||||
String behavior() {
|
||||
return "very aggressive";
|
||||
String run() {
|
||||
return "running";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String behavior2(Visitor dinobehave) {
|
||||
public String move(Visitor dinobehave) {
|
||||
return dinobehave.visit(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,6 @@ package com.baeldung.instanceofalternative.visitorspattern;
|
||||
|
||||
public interface Dino {
|
||||
|
||||
String behavior2(Visitor dinobehave);
|
||||
String move(Visitor dinoMove);
|
||||
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@ public class DinoVisitorImpl implements Visitor {
|
||||
|
||||
@Override
|
||||
public String visit(Anatotitan anatotitan) {
|
||||
return anatotitan.behavior();
|
||||
return anatotitan.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String visit(Euraptor euraptor) {
|
||||
return euraptor.behavior();
|
||||
return euraptor.flies();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package com.baeldung.instanceofalternative.visitorspattern;
|
||||
|
||||
public class Euraptor implements Dino {
|
||||
|
||||
String behavior() {
|
||||
return "calm";
|
||||
String flies() {
|
||||
return "flying";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String behavior2(Visitor dinobehave) {
|
||||
public String move(Visitor dinobehave) {
|
||||
return dinobehave.visit(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,22 +8,22 @@ import com.baeldung.instanceofalternative.enumallt.*;
|
||||
|
||||
public class EnumUnitTest {
|
||||
@Test
|
||||
public void testAnatotitan() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
|
||||
|
||||
Dinosaur dinosaur = new Dinosaur();
|
||||
dinosaur.setDinosaur(DinosaurEnum.Euraptor);
|
||||
|
||||
assertEquals("Calm", dinosaur.getDinosaur()
|
||||
.behaviour());
|
||||
assertEquals("flying", dinosaur.getDinosaur()
|
||||
.move());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEuraptor() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
|
||||
Dinosaur dinosaur = new Dinosaur();
|
||||
dinosaur.setDinosaur(DinosaurEnum.Anatotitan);
|
||||
|
||||
assertEquals("Aggressive ", dinosaur.getDinosaur()
|
||||
.behaviour());
|
||||
assertEquals("running", dinosaur.getDinosaur()
|
||||
.move());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,19 +4,19 @@ import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.baeldung.instanceofalternative.examplesetup.*;
|
||||
import com.baeldung.instanceofalternative.model.*;
|
||||
|
||||
public class ExampleSetupUnitTest {
|
||||
|
||||
@Test
|
||||
public void testAnatotitan() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
|
||||
|
||||
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
|
||||
assertEquals("running", dinoBehavior(new Anatotitan()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEuraptor() {
|
||||
assertEquals("calm", dinoBehavior(new Euraptor()));
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
|
||||
assertEquals("flying", dinoBehavior(new Euraptor()));
|
||||
}
|
||||
|
||||
public static String dinoBehavior(Dinosaur dinosaur) {
|
||||
@@ -24,10 +24,10 @@ public class ExampleSetupUnitTest {
|
||||
if (dinosaur instanceof Anatotitan) {
|
||||
|
||||
Anatotitan anatotitan = (Anatotitan) dinosaur;
|
||||
return anatotitan.behavior();
|
||||
return anatotitan.run();
|
||||
} else if (dinosaur instanceof Euraptor) {
|
||||
Euraptor euraptor = (Euraptor) dinosaur;
|
||||
return euraptor.behavior();
|
||||
return euraptor.flies();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -3,18 +3,18 @@ package com.baeldung.instanceoftest;
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.baeldung.instanceofalternative.getclassalt.*;
|
||||
import com.baeldung.instanceofalternative.model.*;
|
||||
|
||||
public class GetClassUnitTest {
|
||||
|
||||
@Test
|
||||
public void testAnatotitan() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
|
||||
|
||||
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
|
||||
assertEquals("running", dinoBehavior(new Anatotitan()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEuraptor() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
|
||||
assertEquals("calm", dinoBehavior(new Euraptor()));
|
||||
}
|
||||
|
||||
@@ -24,11 +24,11 @@ public class GetClassUnitTest {
|
||||
.equals(Anatotitan.class)) {
|
||||
|
||||
Anatotitan anatotitan = (Anatotitan) dinosaur;
|
||||
return anatotitan.behavior();
|
||||
return anatotitan.run();
|
||||
} else if (dinosaur.getClass()
|
||||
.equals(Euraptor.class)) {
|
||||
Euraptor euraptor = (Euraptor) dinosaur;
|
||||
return euraptor.behavior();
|
||||
return euraptor.flies();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -7,26 +7,26 @@ import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.baeldung.instanceofalternative.mapalt.*;
|
||||
import com.baeldung.instanceofalternative.model.*;
|
||||
|
||||
public class MapUnitTest {
|
||||
|
||||
@Test
|
||||
public void testAnatotitan() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
|
||||
|
||||
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
|
||||
assertEquals("running", moveDinosaur(new Anatotitan()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEuraptor() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
|
||||
|
||||
assertEquals("calm", dinoBehavior(new Euraptor()));
|
||||
assertEquals("calm", moveDinosaur(new Euraptor()));
|
||||
}
|
||||
|
||||
public static String dinoBehavior(Dinosaur dinosaur) {
|
||||
public static String moveDinosaur(Dinosaur dinosaur) {
|
||||
Map<Class<? extends Dinosaur>, String> response = new HashMap<Class<? extends Dinosaur>, String>();
|
||||
|
||||
response.put(dinosaur.getClass(), dinosaur.behavior());
|
||||
response.put(dinosaur.getClass(), dinosaur.move());
|
||||
return response.get(dinosaur.getClass());
|
||||
}
|
||||
|
||||
|
||||
@@ -4,28 +4,28 @@ import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.baeldung.instanceofalternative.patternmatching.*;
|
||||
import com.baeldung.instanceofalternative.model.*;
|
||||
|
||||
public class PatternMatchingUnitTest {
|
||||
|
||||
@Test
|
||||
public void testAnatotitan() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
|
||||
|
||||
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
|
||||
assertEquals("running", dinoBehavior(new Anatotitan()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEuraptor() {
|
||||
assertEquals("calm", dinoBehavior(new Euraptor()));
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
|
||||
assertEquals("flying", dinoBehavior(new Euraptor()));
|
||||
}
|
||||
|
||||
public static String dinoBehavior(Dinosaur dinosaur) {
|
||||
|
||||
if (dinosaur instanceof Anatotitan anatotitan) {
|
||||
return anatotitan.behavior();
|
||||
return anatotitan.run();
|
||||
} else if (dinosaur instanceof Euraptor euraptor) {
|
||||
|
||||
return euraptor.behavior();
|
||||
return euraptor.flies();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -5,23 +5,23 @@ import static org.junit.Assert.*;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.baeldung.instanceofalternative.polymorphism.*;
|
||||
import com.baeldung.instanceofalternative.model.*;
|
||||
|
||||
public class PolymorphismUnitTest {
|
||||
|
||||
@Test
|
||||
public void testAnatotitan() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
|
||||
|
||||
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
|
||||
assertEquals("running", dinoBehavior(new Anatotitan()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEuraptor() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
|
||||
assertEquals("calm", dinoBehavior(new Euraptor()));
|
||||
}
|
||||
|
||||
public static String dinoBehavior(Dinosaur dinosaur) {
|
||||
return dinosaur.behavior();
|
||||
return dinosaur.move();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,21 +9,21 @@ import com.baeldung.instanceofalternative.visitorspattern.*;
|
||||
public class VisitorsPatternUnitTest {
|
||||
|
||||
@Test
|
||||
public void testAnatotitan() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
|
||||
|
||||
assertEquals("very aggressive", visitorsPatter((Dino) new Anatotitan()));
|
||||
assertEquals("running", visitorsPatter((Dino) new Anatotitan()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEuraptor() {
|
||||
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
|
||||
|
||||
assertEquals("calm", visitorsPatter((Dino) new Euraptor()));
|
||||
assertEquals("flying", visitorsPatter((Dino) new Euraptor()));
|
||||
}
|
||||
|
||||
public static String visitorsPatter(Dino dinosaur) {
|
||||
Visitor visitor = new DinoVisitorImpl();
|
||||
|
||||
return dinosaur.behavior2(visitor);
|
||||
return dinosaur.move(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user