File tree Expand file tree Collapse file tree 8 files changed +118
-0
lines changed Expand file tree Collapse file tree 8 files changed +118
-0
lines changed Original file line number Diff line number Diff line change
1
+ name : format and commit all java files
2
+
3
+ on :
4
+ workflow_dispatch :
5
+ push :
6
+ branches :
7
+ - ' exercises/**'
8
+ - ' solutions/**'
9
+
10
+ jobs :
11
+ formatting :
12
+ runs-on : ubuntu-latest
13
+ steps :
14
+ - uses : actions/checkout@v2
15
+ - uses : actions/setup-java@v3
16
+ with :
17
+ java-version : ' 17'
18
+ distribution : ' temurin'
19
+ - uses : axel-op/googlejavaformat-action@v3
Original file line number Diff line number Diff line change
1
+ # Compiled class file
2
+ * .class
3
+
4
+ # Log file
5
+ * .log
6
+
7
+ # BlueJ files
8
+ * .ctxt
9
+
10
+ # Mobile Tools for Java (J2ME)
11
+ .mtj.tmp /
12
+
13
+ # Package Files #
14
+ * .jar
15
+ * .war
16
+ * .nar
17
+ * .ear
18
+ * .zip
19
+ * .tar.gz
20
+ * .rar
21
+
22
+ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23
+ hs_err_pid *
Original file line number Diff line number Diff line change
1
+ public class BeerBottle extends Bottle {
2
+
3
+ public void chugALug () {
4
+ System .out .println ("Ex und Hopp" );
5
+ }
6
+ }
Original file line number Diff line number Diff line change
1
+ public abstract class Bottle {}
Original file line number Diff line number Diff line change
1
+ public class Crate <T > {
2
+
3
+ private T box1 ;
4
+ private T box2 ;
5
+ private T box3 ;
6
+ private T box4 ;
7
+ private T box5 ;
8
+ private T box6 ;
9
+
10
+ public void insertBottle (T bottle , int box ) throws CrateIndexOutOfBoundsException {
11
+ if (box < 1 || box > 6 ) {
12
+ throw new CrateIndexOutOfBoundsException ();
13
+ }
14
+
15
+ switch (box ) {
16
+ case 1 -> box1 = bottle ;
17
+ case 2 -> box2 = bottle ;
18
+ case 3 -> box3 = bottle ;
19
+ case 4 -> box4 = bottle ;
20
+ case 5 -> box5 = bottle ;
21
+ case 6 -> box6 = bottle ;
22
+ }
23
+ }
24
+
25
+ public T takeBottle (int box ) throws CrateIndexOutOfBoundsException {
26
+ if (box < 1 || box > 6 ) {
27
+ throw new CrateIndexOutOfBoundsException ();
28
+ }
29
+
30
+ return switch (box ) {
31
+ case 1 -> box1 ;
32
+ case 2 -> box2 ;
33
+ case 3 -> box3 ;
34
+ case 4 -> box4 ;
35
+ case 5 -> box5 ;
36
+ default -> box6 ;
37
+ };
38
+ }
39
+ }
Original file line number Diff line number Diff line change
1
+ public class CrateIndexOutOfBoundsException extends Exception {
2
+
3
+ private static final long serialVersionUID = 1L ;
4
+
5
+ public CrateIndexOutOfBoundsException () {
6
+ super ("Der angegebene Index befindet sich ausserhalb der Grenzen" );
7
+ }
8
+ }
Original file line number Diff line number Diff line change
1
+ public class Exercise {
2
+
3
+ public static void main (String [] args ) {
4
+ Crate <Bottle > crate = new Crate <Bottle >();
5
+
6
+ try {
7
+ crate .insertBottle (new BeerBottle (), 1 );
8
+ crate .insertBottle (new BeerBottle (), 2 );
9
+ crate .insertBottle (new BeerBottle (), 3 );
10
+ crate .insertBottle (new WineBottle (), 4 );
11
+ crate .insertBottle (new WineBottle (), 5 );
12
+ crate .insertBottle (new WineBottle (), 6 );
13
+
14
+ if (crate .takeBottle (3 ) instanceof BeerBottle beerBottle ) {
15
+ beerBottle .chugALug ();
16
+ }
17
+ } catch (CrateIndexOutOfBoundsException e ) {
18
+ System .err .println (e .getMessage ());
19
+ }
20
+ }
21
+ }
Original file line number Diff line number Diff line change
1
+ public class WineBottle extends Bottle {}
You can’t perform that action at this time.
0 commit comments