From 7a8455683871428d8666aee1e3fa38f6ebaa061a Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Sat, 29 Sep 2018 18:35:36 +0200 Subject: [PATCH] test vari --- .../0aa1aa07115cd8e0632bccad058c6cac493b1f73 | 2 - .../107b897f7854331a98a6a8581840149e42ff2115 | 7 - .../4001d9f1bf9963c71abd4d1038777af085aa8373 | 0 .../5418fb02e2d91c8779a16a8c321acf459a888307 | 0 .../7197bcb1839ba6daa7a69755da50301969ae183c | 10 -- .../7b11771a186730063626106382669a47cd441c6b | 30 ---- .../aef560b35d7384699f32aef9d42c31ad9d3ced14 | 35 ----- .../b2e05cb2c51a4c93f01c778125471c05ef79bde8 | 134 ------------------ .../c46facfa080d31ea55afe2a9118bd91c13a8397e | 3 - .../f5d5ee0d986586d2c0518c976d48e7dd2fc3e30a | 3 - .../fd87dd9510dd66f0eddb68bfcbff43d5bd517449 | 7 - .idea/sonarlint/issuestore/index.pb | 23 --- src/com/oracle/java8/associate/Auto.java | 64 +++++++++ .../oracle/java8/associate/ElectricCar.java | 2 +- .../oracle/java8/associate/Eridarieta.java | 92 ++++++++++++ .../oracle/java8/associate/Overloading.java | 51 +++++++ .../java8/associate/test/ArrayTest.java | 2 +- .../java8/associate/test/FunctionalTest.java | 11 ++ .../java8/associate/test/StringTest.java | 8 ++ 19 files changed, 228 insertions(+), 256 deletions(-) delete mode 100644 .idea/sonarlint/issuestore/0/a/0aa1aa07115cd8e0632bccad058c6cac493b1f73 delete mode 100644 .idea/sonarlint/issuestore/1/0/107b897f7854331a98a6a8581840149e42ff2115 delete mode 100644 .idea/sonarlint/issuestore/4/0/4001d9f1bf9963c71abd4d1038777af085aa8373 delete mode 100644 .idea/sonarlint/issuestore/5/4/5418fb02e2d91c8779a16a8c321acf459a888307 delete mode 100644 .idea/sonarlint/issuestore/7/1/7197bcb1839ba6daa7a69755da50301969ae183c delete mode 100644 .idea/sonarlint/issuestore/7/b/7b11771a186730063626106382669a47cd441c6b delete mode 100644 .idea/sonarlint/issuestore/a/e/aef560b35d7384699f32aef9d42c31ad9d3ced14 delete mode 100644 .idea/sonarlint/issuestore/b/2/b2e05cb2c51a4c93f01c778125471c05ef79bde8 delete mode 100644 .idea/sonarlint/issuestore/c/4/c46facfa080d31ea55afe2a9118bd91c13a8397e delete mode 100644 .idea/sonarlint/issuestore/f/5/f5d5ee0d986586d2c0518c976d48e7dd2fc3e30a delete mode 100644 .idea/sonarlint/issuestore/f/d/fd87dd9510dd66f0eddb68bfcbff43d5bd517449 delete mode 100644 .idea/sonarlint/issuestore/index.pb create mode 100644 src/com/oracle/java8/associate/Auto.java create mode 100644 src/com/oracle/java8/associate/Eridarieta.java create mode 100644 src/com/oracle/java8/associate/Overloading.java diff --git a/.idea/sonarlint/issuestore/0/a/0aa1aa07115cd8e0632bccad058c6cac493b1f73 b/.idea/sonarlint/issuestore/0/a/0aa1aa07115cd8e0632bccad058c6cac493b1f73 deleted file mode 100644 index 04df90e..0000000 --- a/.idea/sonarlint/issuestore/0/a/0aa1aa07115cd8e0632bccad058c6cac493b1f73 +++ /dev/null @@ -1,2 +0,0 @@ - -@ squid:S1068"")Remove this unused "breed" private field.(ϱ \ No newline at end of file diff --git a/.idea/sonarlint/issuestore/1/0/107b897f7854331a98a6a8581840149e42ff2115 b/.idea/sonarlint/issuestore/1/0/107b897f7854331a98a6a8581840149e42ff2115 deleted file mode 100644 index 54e0c46..0000000 --- a/.idea/sonarlint/issuestore/1/0/107b897f7854331a98a6a8581840149e42ff2115 +++ /dev/null @@ -1,7 +0,0 @@ - -O squid:S1612",Replace this lambda with a method reference.(ҁ8, -O squid:S1612 ",Replace this lambda with a method reference.(8, -[ -squid:S106 "9Replace this use of System.out or System.err by a logger.(8, -V -squid:S106"9Replace this use of System.out or System.err by a logger.(8֊, \ No newline at end of file diff --git a/.idea/sonarlint/issuestore/4/0/4001d9f1bf9963c71abd4d1038777af085aa8373 b/.idea/sonarlint/issuestore/4/0/4001d9f1bf9963c71abd4d1038777af085aa8373 deleted file mode 100644 index e69de29..0000000 diff --git a/.idea/sonarlint/issuestore/5/4/5418fb02e2d91c8779a16a8c321acf459a888307 b/.idea/sonarlint/issuestore/5/4/5418fb02e2d91c8779a16a8c321acf459a888307 deleted file mode 100644 index e69de29..0000000 diff --git a/.idea/sonarlint/issuestore/7/1/7197bcb1839ba6daa7a69755da50301969ae183c b/.idea/sonarlint/issuestore/7/1/7197bcb1839ba6daa7a69755da50301969ae183c deleted file mode 100644 index 1915d7e..0000000 --- a/.idea/sonarlint/issuestore/7/1/7197bcb1839ba6daa7a69755da50301969ae183c +++ /dev/null @@ -1,10 +0,0 @@ - -[ -squid:S106"9Replace this use of System.out or System.err by a logger.(涶8, -[ -squid:S106"9Replace this use of System.out or System.err by a logger.(酪8䟖, -X squid:S1161)":Add the "@Override" annotation above this method signature(8򺑗, -[ -squid:S106*"9Replace this use of System.out or System.err by a logger.(8򺑗, -V -squid:S106#"9Replace this use of System.out or System.err by a logger.(8, \ No newline at end of file diff --git a/.idea/sonarlint/issuestore/7/b/7b11771a186730063626106382669a47cd441c6b b/.idea/sonarlint/issuestore/7/b/7b11771a186730063626106382669a47cd441c6b deleted file mode 100644 index bd24eaa..0000000 --- a/.idea/sonarlint/issuestore/7/b/7b11771a186730063626106382669a47cd441c6b +++ /dev/null @@ -1,30 +0,0 @@ - -bsquid:UselessImportCheck"7Remove this unused import 'java.text.SimpleDateFormat'.(8, -U -squid:S106O"9Replace this use of System.out or System.err by a logger.(έa8, -U -squid:S106M"9Replace this use of System.out or System.err by a logger.(28, -V -squid:S106Y"9Replace this use of System.out or System.err by a logger.(֗ǹ8, -bsquid:CommentedOutCodeLine9"Remove this unused import 'java.time.temporal.TemporalAmount'.(8, -gsquid:CommentedOutCodeLine;" autos = new ArrayList<>(); + for (int i = 0; i < 5; i++) { + Auto a1 = new Auto(); + autos.add(a1); + System.out.println(Auto.getConteggio()); + } + autos.clear(); + wait(0.1); + System.out.println(Auto.getConteggio()); + } + + private static void wait(double second) { + try { + System.gc(); + Thread.sleep((long) (second * 1000)); + } catch (Exception e) {} + } +} diff --git a/src/com/oracle/java8/associate/ElectricCar.java b/src/com/oracle/java8/associate/ElectricCar.java index a7c43f9..cca5853 100644 --- a/src/com/oracle/java8/associate/ElectricCar.java +++ b/src/com/oracle/java8/associate/ElectricCar.java @@ -6,7 +6,7 @@ class Automobile { } } -class Car extends Automobile { +class Car extends Auto { protected String drive() { return "Driving car"; } diff --git a/src/com/oracle/java8/associate/Eridarieta.java b/src/com/oracle/java8/associate/Eridarieta.java new file mode 100644 index 0000000..d0eefcd --- /dev/null +++ b/src/com/oracle/java8/associate/Eridarieta.java @@ -0,0 +1,92 @@ +package com.oracle.java8.associate; + +public class Eridarieta { + + public static void main(String[] args) { + Animale[] animali = { + creaAnimale("Cane"), + creaAnimale("Coccodrillo"), + creaAnimale("Coccodrillo"), + creaAnimale("Cane") + }; + + for (Animale a : animali) { + if (a instanceof Animale) { + System.out.println(a.getClass().getSimpleName() + " sono un animale"); + } + if (a instanceof Mammifero) { + System.out.println(a.getClass().getSimpleName() + " sono un mammifero"); + } + if (a instanceof Rettile) { + System.out.println(a.getClass().getSimpleName() + " sono un rettile"); + } + + a.muove(); + } + } + + static Animale creaAnimale(String tipo) { + switch (tipo) { + case "Cane": + return new Cane(); + case "Coccodrillo": + return new Coccodrillo(); + default: + throw new RuntimeException("Tipo animale non esistente"); + } + } +} + +interface Animale { + void muove(); +} + +abstract class Mammifero implements Animale { + protected int gambe; + + public int getGambe() { + return gambe; + } + + public void setGambe(int gambe) { + this.gambe = gambe; + } +} + +abstract class Rettile implements Animale { + protected int temperatura; + + public int getTemperatura() { + return temperatura; + } + + public void setTemperatura(int temperatura) { + this.temperatura = temperatura; + } +} + +class Cane extends Mammifero { + + public Cane() { + super(); + this.gambe = 4; + } + + @Override + public void muove() { + System.out.println(String.format("Corre sulle %d gambe", getGambe())); + } +} + +class Coccodrillo extends Rettile { + + public Coccodrillo() { + super(); + this.temperatura = 30; + } + + @Override + public void muove() { + System.out.println(String.format("Ha una temperatura di %d°C", temperatura)); + } +} \ No newline at end of file diff --git a/src/com/oracle/java8/associate/Overloading.java b/src/com/oracle/java8/associate/Overloading.java new file mode 100644 index 0000000..e7dc929 --- /dev/null +++ b/src/com/oracle/java8/associate/Overloading.java @@ -0,0 +1,51 @@ +package com.oracle.java8.associate; + +public class Overloading { + + public static void main(String[] args) throws Exception { + X o = new X(); + + o.m(1.0, 2); // 2 + o.m(1, 2); // 4 + o.m(1, 0f); // 1 + o.m(3., 8); // 2 + o.m(0L, 9); // 3 + + o.m(); + o = new Y(); + o.m(); + } +} + +class X { + + public void m(int x, double y) { + System.out.println("1"); + } + + public void m(double x, long y) { + System.out.println("2"); + } + + public void m(float x, int y) { + System.out.println("3"); + } + + public void m(int x, int y) { + System.out.println("4"); + } + + public Object m() throws Exception { + System.out.println("m() => X"); + return null; + } +} + +class Y extends X { + + @Override + public String m() throws InstantiationException { + System.out.println("m() => Y"); + return null; + } +} diff --git a/src/com/oracle/java8/associate/test/ArrayTest.java b/src/com/oracle/java8/associate/test/ArrayTest.java index e3ea8b4..b0a2b7b 100644 --- a/src/com/oracle/java8/associate/test/ArrayTest.java +++ b/src/com/oracle/java8/associate/test/ArrayTest.java @@ -64,7 +64,7 @@ public class ArrayTest { //String s = a6[-1]; ArrayIndexOutOfBoundsException - //Field f = new int[0].getClass().getField("length"); java.lang.NoSuchFieldException: length + //Field m = new int[0].getClass().getField("length"); java.lang.NoSuchFieldException: length // non funziona int[] a7 = unmodifieble(new int[]{1, 2, 3, 4, 5}); diff --git a/src/com/oracle/java8/associate/test/FunctionalTest.java b/src/com/oracle/java8/associate/test/FunctionalTest.java index 19204ae..4e7b5f7 100644 --- a/src/com/oracle/java8/associate/test/FunctionalTest.java +++ b/src/com/oracle/java8/associate/test/FunctionalTest.java @@ -1,6 +1,8 @@ package com.oracle.java8.associate.test; import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Supplier; public class FunctionalTest { @@ -14,6 +16,15 @@ public class FunctionalTest { EmployeeFactory factory = Employee::new; Employee employee = factory.getEmployee("John Hammond", 25); System.out.println(employee); + + Function convert = FunctionalTest::convert; + String ciao = convert.apply("Ciao"); + System.out.println(ciao); + } + + private static String convert(Object o) { + Function f = obj -> obj.toString(); + return f.apply(o); } } diff --git a/src/com/oracle/java8/associate/test/StringTest.java b/src/com/oracle/java8/associate/test/StringTest.java index 5579ae4..df389e7 100644 --- a/src/com/oracle/java8/associate/test/StringTest.java +++ b/src/com/oracle/java8/associate/test/StringTest.java @@ -20,5 +20,13 @@ public class StringTest { System.out.println(sb.capacity()); System.out.println(sb.toString()); System.out.println(s.substring(0, 4)); + + String s1 = "Java"; + String[] s2 = {"J", "a", "v", "a"}; + String s3 = ""; + for (String elem : s2) { + s3 = s3 + elem; + } + System.out.println(s1 == s3); } }