WEBVTT

1
00:00:03.315 --> 00:00:07.055
<00:00:03.315>So <00:00:03.548>I <00:00:03.781>will <00:00:04.014>start <00:00:04.248>sharing <00:00:04.481>my <00:00:04.715>presentation.

2
00:00:07.575 --> 00:00:10.615
<00:00:07.575>I <00:00:07.691>hope <00:00:07.808>that <00:00:07.925>you <00:00:08.041>can <00:00:08.158>now <00:00:08.275>see <00:00:08.391>it <00:00:08.508>in <00:00:08.625>the <00:00:08.741>full <00:00:08.858>screen <00:00:08.975>mode.

3
00:00:10.795 --> 00:00:13.535
<00:00:10.795>Um, <00:00:11.028>so <00:00:11.261>thanks <00:00:11.495>for <00:00:11.728>joining <00:00:11.961>this <00:00:12.195>session.

4
00:00:14.195 --> 00:00:17.975
<00:00:14.195>Um, <00:00:14.322>I'm <00:00:14.449>really <00:00:14.576>happy <00:00:14.704>to <00:00:14.831>be <00:00:14.958>at <00:00:15.085>Weir <00:00:15.213>developers <00:00:15.340>Java <00:00:15.467>Day <00:00:15.595>now

5
00:00:17.995 --> 00:00:19.495
<00:00:17.995>for, <00:00:18.332>uh, <00:00:18.670>the <00:00:19.007>second <00:00:19.345>time.

6
00:00:20.585 --> 00:00:24.845
<00:00:20.585>And <00:00:20.760>this <00:00:20.935>time <00:00:21.110>I'm <00:00:21.285>gonna <00:00:21.460>talk <00:00:21.635>about <00:00:21.810>what's, <00:00:21.985>um,

7
00:00:25.545 --> 00:00:29.205
<00:00:25.545>new <00:00:25.672>for <00:00:25.799>you <00:00:25.926>as <00:00:26.054>a <00:00:26.181>developer <00:00:26.308>when <00:00:26.435>you <00:00:26.563>move <00:00:26.690>from <00:00:26.817>Java <00:00:26.945>11

8
00:00:29.265 --> 00:00:33.805
<00:00:29.265>to <00:00:29.420>Java <00:00:29.576>17, <00:00:29.731>and <00:00:29.887>why <00:00:30.042>Java <00:00:30.198>11 <00:00:30.353>to <00:00:30.509>Java <00:00:30.665>17?

9
00:00:34.025 --> 00:00:35.525
<00:00:34.025>Uh, <00:00:34.362>because <00:00:34.699>these <00:00:35.037>are, <00:00:35.375>uh,

10
00:00:35.905 --> 00:00:38.805
<00:00:35.905>the <00:00:36.105>two <00:00:36.305>long-term <00:00:36.505>supported <00:00:36.705>versions <00:00:36.905>that <00:00:37.105>probably <00:00:37.305>most

11
00:00:38.805 --> 00:00:42.245
<00:00:38.805>of <00:00:39.005>us, <00:00:39.205>uh, <00:00:39.405>will <00:00:39.605>migrate <00:00:39.805>to <00:00:40.005>and <00:00:40.205>from.

12
00:00:43.385 --> 00:00:47.485
<00:00:43.385>Um, <00:00:43.559>so, <00:00:43.735>uh, <00:00:43.910>let <00:00:44.085>me <00:00:44.260>introduce <00:00:44.434>myself, <00:00:44.610>uh, <00:00:44.785>briefly.

13
00:00:47.665 --> 00:00:48.925
<00:00:47.665>So <00:00:47.948>my <00:00:48.232>name <00:00:48.515>is <00:00:48.799>Daniel.

14
00:00:49.245 --> 00:00:51.605
<00:00:49.245>I <00:00:49.525>work <00:00:49.805>at <00:00:50.084>IBM <00:00:50.364>ix, <00:00:50.644>uh,

15
00:00:51.665 --> 00:00:55.125
<00:00:51.665>or <00:00:51.839>formerly <00:00:52.015>known <00:00:52.190>XiO <00:00:52.365>in <00:00:52.540>our <00:00:52.714>studio <00:00:52.890>in <00:00:53.065>Vasin.

16
00:00:55.275 --> 00:01:00.225
<00:00:55.275>It's <00:00:55.415>a <00:00:55.555>small <00:00:55.695>town <00:00:55.835>in, <00:00:55.975>in <00:00:56.114>the <00:00:56.254>north <00:00:56.394>of <00:00:56.535>Croatia, <00:00:56.675>um,

17
00:01:00.675 --> 00:01:04.665
<00:01:00.675>where <00:01:00.830>I'm <00:01:00.986>located <00:01:01.141>at, <00:01:01.297>um, <00:01:01.452>I've <00:01:01.608>been <00:01:01.763>doing <00:01:01.919>Java <00:01:02.074>development

18
00:01:04.885 --> 00:01:06.585
<00:01:04.885>for <00:01:05.235>almost <00:01:05.585>10 <00:01:05.935>years <00:01:06.285>now.

19
00:01:07.125 --> 00:01:10.985
<00:01:07.125>Um, <00:01:07.325>I'm <00:01:07.525>very <00:01:07.725>interested <00:01:07.925>in <00:01:08.125>all <00:01:08.325>topics, <00:01:08.525>uh,

20
00:01:11.165 --> 00:01:13.425
<00:01:11.164>around <00:01:11.514>web <00:01:11.865>development, <00:01:12.214>around <00:01:12.565>Java

21
00:01:13.725 --> 00:01:16.185
<00:01:13.725>and <00:01:13.925>especially, <00:01:14.125>uh, <00:01:14.324>clean <00:01:14.524>code <00:01:14.725>and, <00:01:14.925>and <00:01:15.125>testing.

22
00:01:16.765 --> 00:01:21.465
<00:01:16.765>So <00:01:16.965>our <00:01:17.165>agenda <00:01:17.365>for <00:01:17.565>today <00:01:17.765>is <00:01:17.965>actually <00:01:18.165>to,

23
00:01:22.615 --> 00:01:27.555
<00:01:22.615>uh, <00:01:22.770>explain <00:01:22.926>a <00:01:23.081>bit, <00:01:23.237>uh, <00:01:23.392>in <00:01:23.548>the <00:01:23.703>first <00:01:23.859>phase, <00:01:24.015>uh,

24
00:01:27.555 --> 00:01:29.755
<00:01:27.555>the <00:01:27.788>changes <00:01:28.021>in <00:01:28.255>the <00:01:28.488>JDK <00:01:28.721>release <00:01:28.955>cadence,

25
00:01:30.775 --> 00:01:33.995
<00:01:30.775>but <00:01:30.915>then <00:01:31.055>the <00:01:31.195>core <00:01:31.335>of <00:01:31.475>the <00:01:31.615>presentation <00:01:31.755>is <00:01:31.895>actually <00:01:32.035>to <00:01:32.175>go

26
00:01:33.995 --> 00:01:37.755
<00:01:33.995>through <00:01:34.228>the <00:01:34.461>nine <00:01:34.695>selected <00:01:34.928>development <00:01:35.161>features, <00:01:35.395>uh,

27
00:01:38.065 --> 00:01:41.675
<00:01:38.065>that <00:01:38.220>are <00:01:38.376>now <00:01:38.531>available <00:01:38.687>in <00:01:38.842>the <00:01:38.998>new <00:01:39.153>long-term <00:01:39.309>supported, <00:01:39.465>uh,

28
00:01:41.675 --> 00:01:43.355
<00:01:41.675>version <00:01:41.955>of <00:01:42.235>Java <00:01:42.515>that's <00:01:42.795>been <00:01:43.075>released.

29
00:01:44.215 --> 00:01:48.715
<00:01:44.215>Um, <00:01:44.355>and <00:01:44.495>I've <00:01:44.635>wanna <00:01:44.775>go <00:01:44.915>through <00:01:45.055>this <00:01:45.195>with <00:01:45.335>you <00:01:45.475>through, <00:01:45.615>um,

30
00:01:48.875 --> 00:01:51.195
<00:01:48.875>a <00:01:49.030>set <00:01:49.186>of <00:01:49.341>examples <00:01:49.497>and <00:01:49.652>we'll <00:01:49.808>do <00:01:49.963>some <00:01:50.119>live <00:01:50.275>coding

31
00:01:51.195 --> 00:01:54.715
<00:01:51.195>because <00:01:51.322>I <00:01:51.449>think <00:01:51.576>that's, <00:01:51.704>that's <00:01:51.831>the <00:01:51.958>best <00:01:52.085>way <00:01:52.213>to, <00:01:52.340>uh, <00:01:52.467>to <00:01:52.595>see

32
00:01:54.995 --> 00:01:57.395
<00:01:54.995>how <00:01:55.228>things, <00:01:55.461>uh, <00:01:55.695>actually, <00:01:55.928>actually <00:01:56.161>work <00:01:56.395>live.

33
00:01:58.015 --> 00:01:59.835
<00:01:58.015>And <00:01:58.295>of <00:01:58.575>course, <00:01:58.855>um, <00:01:59.135>I'll <00:01:59.415>try

34
00:01:59.835 --> 00:02:03.075
<00:01:59.835>to <00:01:59.942>leave <00:02:00.050>some <00:02:00.158>some <00:02:00.265>time <00:02:00.373>at <00:02:00.481>the <00:02:00.588>end <00:02:00.696>for, <00:02:00.804>for <00:02:00.911>the <00:02:01.019>q <00:02:01.127>and <00:02:01.235>a.

35
00:02:06.375 --> 00:02:09.025
<00:02:06.375>Okay. <00:02:06.608>So, <00:02:06.841>um, <00:02:07.075>to <00:02:07.308>start <00:02:07.541>with, <00:02:07.775>uh,

36
00:02:09.155 --> 00:02:11.465
<00:02:09.155>we're <00:02:09.435>gonna <00:02:09.715>talk <00:02:09.995>about <00:02:10.275>Java <00:02:10.555>17.

37
00:02:11.965 --> 00:02:16.185
<00:02:11.965>And <00:02:12.140>Java <00:02:12.315>17 <00:02:12.490>has <00:02:12.665>been <00:02:12.840>released, <00:02:13.015>um, <00:02:13.190>recently, <00:02:13.365>uh,

38
00:02:16.325 --> 00:02:19.185
<00:02:16.325>in <00:02:16.605>September, <00:02:16.885>uh, <00:02:17.165>last <00:02:17.445>year, <00:02:17.725>2021.

39
00:02:19.685 --> 00:02:23.105
<00:02:19.685>And <00:02:19.885>this <00:02:20.085>is <00:02:20.285>the <00:02:20.485>new <00:02:20.685>long-term <00:02:20.885>supported <00:02:21.085>release

40
00:02:23.405 --> 00:02:24.865
<00:02:23.405>of <00:02:23.843>the <00:02:24.281>standard <00:02:24.719>JDK.

41
00:02:25.645 --> 00:02:29.865
<00:02:25.645>Uh, <00:02:25.785>this <00:02:25.925>of <00:02:26.065>course, <00:02:26.205>means <00:02:26.345>that <00:02:26.485>Java <00:02:26.625>17 <00:02:26.765>includes <00:02:26.905>all <00:02:27.045>updates

42
00:02:29.865 --> 00:02:33.025
<00:02:29.865>and <00:02:30.065>features <00:02:30.265>since <00:02:30.465>the <00:02:30.665>last <00:02:30.865>long-term <00:02:31.065>supported <00:02:31.265>release,

43
00:02:33.025 --> 00:02:34.705
<00:02:33.025>which <00:02:33.375>was, <00:02:33.725>uh, <00:02:34.075>JDK <00:02:34.425>11.

44
00:02:35.725 --> 00:02:40.105
<00:02:35.725>Uh, <00:02:35.864>and <00:02:36.005>there <00:02:36.144>was <00:02:36.285>also <00:02:36.424>one <00:02:36.565>significant <00:02:36.704>change <00:02:36.845>in <00:02:36.984>the <00:02:37.125>way

45
00:02:40.325 --> 00:02:45.105
<00:02:40.325>how <00:02:40.480>Oracle <00:02:40.636>JDK, <00:02:40.791>uh, <00:02:40.947>is <00:02:41.102>licensing <00:02:41.258>Java <00:02:41.413>or <00:02:41.569>JDK <00:02:41.725>17.

46
00:02:46.605 --> 00:02:49.215
<00:02:46.605>Basically, <00:02:46.838>um, <00:02:47.071>there <00:02:47.304>is <00:02:47.538>a <00:02:47.771>new <00:02:48.005>license

47
00:02:49.215 --> 00:02:51.495
<00:02:49.215>that's <00:02:49.448>called <00:02:49.681>a <00:02:49.915>simple <00:02:50.148>license <00:02:50.381>term, <00:02:50.615>um,

48
00:02:51.665 --> 00:02:56.455
<00:02:51.665>which <00:02:51.804>allows <00:02:51.945>everyone <00:02:52.084>to <00:02:52.225>use <00:02:52.364>Oracle <00:02:52.505>JDK <00:02:52.644>17 <00:02:52.785>at <00:02:52.924>no <00:02:53.065>cost

49
00:02:57.035 --> 00:02:58.455
<00:02:57.035>for <00:02:57.248>at <00:02:57.460>least <00:02:57.673>the <00:02:57.887>next <00:02:58.100>three <00:02:58.313>years.

50
00:02:59.185 --> 00:03:01.725
<00:02:59.185>Uh, <00:02:59.385>and <00:02:59.585>this <00:02:59.785>of <00:02:59.985>course <00:03:00.185>includes <00:03:00.385>all <00:03:00.585>the,

51
00:03:01.745 --> 00:03:03.965
<00:03:01.745>all <00:03:01.945>the <00:03:02.145>security <00:03:02.345>enhancements <00:03:02.545>and <00:03:02.745>patches <00:03:02.945>and <00:03:03.145>everything.

52
00:03:04.065 --> 00:03:06.805
<00:03:04.065>Uh, <00:03:04.240>that's, <00:03:04.415>that's, <00:03:04.590>uh, <00:03:04.765>gonna <00:03:04.940>be <00:03:05.115>released <00:03:05.290>by <00:03:05.465>Oracle.

53
00:03:07.425 --> 00:03:09.605
<00:03:07.425>Um, <00:03:07.600>this <00:03:07.775>is <00:03:07.950>really, <00:03:08.125>really <00:03:08.300>cool <00:03:08.475>and <00:03:08.650>really <00:03:08.825>important

54
00:03:09.605 --> 00:03:13.005
<00:03:09.605>because <00:03:09.760>we, <00:03:09.916>we <00:03:10.071>can <00:03:10.227>now <00:03:10.382>also <00:03:10.538>use <00:03:10.693>it <00:03:10.849>commercially, <00:03:11.005>um,

55
00:03:13.185 --> 00:03:14.685
<00:03:13.185>at <00:03:13.455>no <00:03:13.725>cost <00:03:13.995>for <00:03:14.265>three <00:03:14.535>years.

56
00:03:14.865 --> 00:03:16.205
<00:03:14.865>And <00:03:15.066>in <00:03:15.267>the <00:03:15.468>three <00:03:15.668>years, <00:03:15.870>of <00:03:16.071>course,

57
00:03:16.215 --> 00:03:18.965
<00:03:16.215>we're <00:03:16.415>gonna <00:03:16.615>get <00:03:16.815>the <00:03:17.015>next <00:03:17.215>long-term <00:03:17.415>supported, <00:03:17.615>um,

58
00:03:19.835 --> 00:03:21.325
<00:03:19.835>release <00:03:20.282>from <00:03:20.728>from <00:03:21.176>Oracle.

59
00:03:25.495 --> 00:03:29.475
<00:03:25.495>So, <00:03:25.670>how <00:03:25.845>the <00:03:26.020>JDK <00:03:26.195>release <00:03:26.370>cadence <00:03:26.545>actually <00:03:26.720>looks <00:03:26.895>like,

60
00:03:30.795 --> 00:03:32.515
<00:03:30.795>probably <00:03:31.028>most <00:03:31.261>of <00:03:31.495>you <00:03:31.728>know, <00:03:31.961>that, <00:03:32.195>um,

61
00:03:33.035 --> 00:03:35.555
<00:03:33.035>J <00:03:33.234>dks <00:03:33.435>get <00:03:33.635>released <00:03:33.835>every, <00:03:34.035>every <00:03:34.234>six <00:03:34.435>months.

62
00:03:36.375 --> 00:03:41.155
<00:03:36.375>Um, <00:03:36.515>but <00:03:36.655>there <00:03:36.795>was <00:03:36.935>a <00:03:37.075>change <00:03:37.215>now <00:03:37.355>with <00:03:37.495>JDK <00:03:37.635>17, <00:03:37.775>uh,

63
00:03:41.415 --> 00:03:44.555
<00:03:41.415>in, <00:03:41.648>uh, <00:03:41.881>how <00:03:42.114>the <00:03:42.348>long-term <00:03:42.581>supported <00:03:42.815>releases,

64
00:03:44.695 --> 00:03:45.915
<00:03:44.695>um, <00:03:44.969>are <00:03:45.244>gonna <00:03:45.518>be <00:03:45.793>out.

65
00:03:46.375 --> 00:03:49.475
<00:03:46.375>So <00:03:46.502>if <00:03:46.629>you <00:03:46.756>take <00:03:46.884>a <00:03:47.011>look <00:03:47.138>at <00:03:47.265>this, <00:03:47.393>um, <00:03:47.520>this <00:03:47.647>image, <00:03:47.775>um,

66
00:03:49.615 --> 00:03:53.155
<00:03:49.615>you <00:03:49.815>will <00:03:50.015>see <00:03:50.215>that, <00:03:50.415>uh, <00:03:50.615>from <00:03:50.815>JDK <00:03:51.015>11

67
00:03:53.335 --> 00:03:57.155
<00:03:53.335>to <00:03:53.475>J <00:03:53.615>DK <00:03:53.755>17, <00:03:53.895>there <00:03:54.035>was <00:03:54.175>a <00:03:54.315>three <00:03:54.455>year, <00:03:54.595>uh, <00:03:54.735>gap

68
00:03:57.155 --> 00:03:58.795
<00:03:57.155>where <00:03:57.435>we <00:03:57.715>didn't <00:03:57.995>have, <00:03:58.275>uh, <00:03:58.555>long,

69
00:03:59.385 --> 00:04:00.995
<00:03:59.385>long-term <00:04:00.084>supported <00:04:00.785>releases.

70
00:04:01.375 --> 00:04:06.155
<00:04:01.375>So <00:04:01.550>from <00:04:01.725>September, <00:04:01.900>um, <00:04:02.075>2018 <00:04:02.250>to <00:04:02.425>September, <00:04:02.600>uh, <00:04:02.775>2021,

71
00:04:06.815 --> 00:04:08.715
<00:04:06.815>uh, <00:04:07.048>this <00:04:07.281>is <00:04:07.515>now <00:04:07.748>gonna <00:04:07.981>be <00:04:08.215>changed.

72
00:04:08.895 --> 00:04:11.275
<00:04:08.895>And <00:04:09.128>Oracle <00:04:09.361>promises <00:04:09.595>us <00:04:09.828>in <00:04:10.061>the <00:04:10.295>future

73
00:04:11.385 --> 00:04:14.675
<00:04:11.385>that <00:04:11.540>we <00:04:11.696>will <00:04:11.851>have <00:04:12.007>long-term <00:04:12.162>support <00:04:12.318>releases <00:04:12.473>every <00:04:12.629>two <00:04:12.785>years

74
00:04:14.785 --> 00:04:18.635
<00:04:14.785>instead <00:04:14.924>of <00:04:15.065>every <00:04:15.204>three <00:04:15.345>years, <00:04:15.484>which <00:04:15.625>is <00:04:15.765>again, <00:04:15.905>um, <00:04:16.045>one, <00:04:16.185>uh,

75
00:04:19.175 --> 00:04:21.115
<00:04:19.175>uh, <00:04:19.350>cool <00:04:19.525>news <00:04:19.700>that, <00:04:19.875>that <00:04:20.050>we <00:04:20.225>got <00:04:20.400>from <00:04:20.575>Oracle.

76
00:04:23.965 --> 00:04:27.015
<00:04:23.965>Okay, <00:04:24.198>so, <00:04:24.431>uh, <00:04:24.664>let's, <00:04:24.898>let's <00:04:25.131>get <00:04:25.364>practical

77
00:04:27.035 --> 00:04:30.175
<00:04:27.035>and <00:04:27.190>let's <00:04:27.346>start <00:04:27.501>talking <00:04:27.657>how <00:04:27.812>you <00:04:27.968>can <00:04:28.123>actually <00:04:28.279>get <00:04:28.435>started

78
00:04:30.205 --> 00:04:31.335
<00:04:30.205>with <00:04:30.713>Chala <00:04:31.222>17.

79
00:04:31.835 --> 00:04:36.215
<00:04:31.835>And <00:04:31.974>of <00:04:32.114>course, <00:04:32.255>the, <00:04:32.395>the <00:04:32.534>first <00:04:32.674>step <00:04:32.815>is <00:04:32.955>to <00:04:33.094>go <00:04:33.234>to,

80
00:04:36.635 --> 00:04:39.775
<00:04:36.635>um, <00:04:36.985>Oracle, <00:04:37.335>um, <00:04:37.685>Oracle's <00:04:38.034>page

81
00:04:39.775 --> 00:04:44.215
<00:04:39.775>or <00:04:39.950>any <00:04:40.125>other <00:04:40.299>Java <00:04:40.474>17 <00:04:40.650>SDK, <00:04:40.825>uh, <00:04:41.000>download <00:04:41.174>it

82
00:04:44.235 --> 00:04:45.855
<00:04:44.235>and <00:04:44.468>install <00:04:44.701>it <00:04:44.935>to <00:04:45.168>your <00:04:45.401>machine, <00:04:45.635>right?

83
00:04:46.055 --> 00:04:48.655
<00:04:46.055>I <00:04:46.210>think <00:04:46.366>everyone <00:04:46.521>should <00:04:46.677>be, <00:04:46.832>should <00:04:46.988>be <00:04:47.143>familiar <00:04:47.299>with <00:04:47.455>that.

84
00:04:48.675 --> 00:04:50.335
<00:04:48.675>So, <00:04:48.875>so <00:04:49.075>I <00:04:49.275>won't <00:04:49.475>be <00:04:49.675>explaining <00:04:49.875>that <00:04:50.075>part

85
00:04:50.825 --> 00:04:53.455
<00:04:50.825>after <00:04:51.058>that, <00:04:51.291>some <00:04:51.525>configuration <00:04:51.758>that <00:04:51.991>you <00:04:52.224>need

86
00:04:53.495 --> 00:04:56.535
<00:04:53.495>to <00:04:53.622>do <00:04:53.749>in <00:04:53.876>your <00:04:54.004>favorite <00:04:54.131>IDE <00:04:54.258>or <00:04:54.385>in <00:04:54.513>your <00:04:54.640>favorite <00:04:54.767>build <00:04:54.895>tool.

87
00:04:56.795 --> 00:05:00.915
<00:04:56.795>Um, <00:04:56.911>here <00:04:57.028>on <00:04:57.145>the, <00:04:57.261>on <00:04:57.378>the <00:04:57.495>left <00:04:57.611>side, <00:04:57.728>I <00:04:57.845>put <00:04:57.961>some <00:04:58.078>screenshots <00:04:58.195>on

88
00:05:01.015 --> 00:05:04.795
<00:05:01.015>how <00:05:01.155>to <00:05:01.294>do <00:05:01.435>it <00:05:01.575>in <00:05:01.715>intelligent <00:05:01.854>maven, <00:05:01.995>in <00:05:02.135>intelligent, <00:05:02.275>in <00:05:02.414>the,

89
00:05:04.895 --> 00:05:07.435
<00:05:04.895>in <00:05:05.034>the <00:05:05.174>project <00:05:05.315>settings, <00:05:05.455>you <00:05:05.594>can <00:05:05.734>set <00:05:05.875>the <00:05:06.015>project <00:05:06.155>as <00:05:06.294>DK,

90
00:05:07.535 --> 00:05:09.635
<00:05:07.535>and <00:05:07.690>then <00:05:07.846>if <00:05:08.001>you <00:05:08.157>want <00:05:08.312>to <00:05:08.468>use <00:05:08.623>some <00:05:08.779>preview <00:05:08.935>features,

91
00:05:09.635 --> 00:05:11.995
<00:05:09.635>which <00:05:09.835>will, <00:05:10.034>will <00:05:10.235>be <00:05:10.435>using <00:05:10.635>in <00:05:10.835>this <00:05:11.034>session,

92
00:05:12.425 --> 00:05:15.325
<00:05:12.425>then <00:05:12.600>you <00:05:12.775>also <00:05:12.950>need <00:05:13.125>to <00:05:13.300>need <00:05:13.475>to <00:05:13.650>enable <00:05:13.825>those,

93
00:05:15.335 --> 00:05:16.885
<00:05:15.335>those <00:05:15.799>preview <00:05:16.265>uh, <00:05:16.730>features.

94
00:05:17.395 --> 00:05:20.325
<00:05:17.395>Similar <00:05:17.594>thing <00:05:17.794>is <00:05:17.995>with, <00:05:18.195>uh, <00:05:18.395>with <00:05:18.594>Maven, <00:05:18.794>uh,

95
00:05:20.425 --> 00:05:22.805
<00:05:20.425>in <00:05:20.580>the <00:05:20.736>Maven <00:05:20.891>compiler <00:05:21.047>plugin, <00:05:21.202>you <00:05:21.358>can <00:05:21.513>set <00:05:21.669>the <00:05:21.825>source

96
00:05:22.805 --> 00:05:24.765
<00:05:22.805>and <00:05:23.085>target <00:05:23.365>to, <00:05:23.645>to <00:05:23.925>Java <00:05:24.205>17.

97
00:05:25.425 --> 00:05:28.045
<00:05:25.425>And <00:05:25.552>then <00:05:25.679>if <00:05:25.806>you <00:05:25.934>wanna <00:05:26.061>use <00:05:26.188>the <00:05:26.315>preview <00:05:26.443>features <00:05:26.570>of <00:05:26.697>Java <00:05:26.825>17,

98
00:05:28.105 --> 00:05:31.725
<00:05:28.105>you, <00:05:28.245>you <00:05:28.385>will <00:05:28.525>need <00:05:28.665>to <00:05:28.805>pass <00:05:28.945>down, <00:05:29.085>uh, <00:05:29.225>a <00:05:29.365>compiler <00:05:29.505>argument,

99
00:05:31.865 --> 00:05:32.885
<00:05:31.865>um, <00:05:32.324>enabled <00:05:32.783>preview.

100
00:05:33.655 --> 00:05:37.325
<00:05:33.655>After <00:05:33.794>you <00:05:33.934>do <00:05:34.075>that, <00:05:34.215>um, <00:05:34.354>you <00:05:34.494>are <00:05:34.635>ready <00:05:34.775>to <00:05:34.914>start <00:05:35.054>playing

101
00:05:37.325 --> 00:05:38.325
<00:05:37.325>with <00:05:37.775>Java <00:05:38.224>17

102
00:05:38.385 --> 00:05:40.605
<00:05:38.385>and <00:05:38.585>check <00:05:38.784>out <00:05:38.985>some <00:05:39.185>of <00:05:39.385>its <00:05:39.585>new <00:05:39.784>features,

103
00:05:40.615 --> 00:05:42.685
<00:05:40.615>which <00:05:40.815>is <00:05:41.015>exactly <00:05:41.215>what <00:05:41.415>we're <00:05:41.615>gonna <00:05:41.815>do <00:05:42.015>next.

104
00:05:45.955 --> 00:05:48.695
<00:05:45.955>So <00:05:46.082>what <00:05:46.209>we'll <00:05:46.336>do <00:05:46.464>next <00:05:46.591>is <00:05:46.718>we, <00:05:46.845>we'll <00:05:46.973>demo <00:05:47.100>on <00:05:47.227>nine, <00:05:47.354>uh,

105
00:05:49.135 --> 00:05:51.255
<00:05:49.135>features <00:05:49.368>that <00:05:49.601>I've <00:05:49.835>selected <00:05:50.068>for <00:05:50.301>you, <00:05:50.534>um,

106
00:05:51.445 --> 00:05:55.135
<00:05:51.445>because <00:05:51.600>I <00:05:51.756>think <00:05:51.911>these <00:05:52.067>nine <00:05:52.222>features <00:05:52.378>will <00:05:52.533>have <00:05:52.689>the <00:05:52.844>most

107
00:05:55.555 --> 00:05:57.765
<00:05:55.555>impact <00:05:55.905>on <00:05:56.255>your <00:05:56.605>everyday <00:05:56.955>development

108
00:05:57.945 --> 00:05:59.885
<00:05:57.945>and <00:05:58.178>basically <00:05:58.411>on <00:05:58.645>how <00:05:58.878>you <00:05:59.111>write <00:05:59.344>code.

109
00:06:00.545 --> 00:06:02.645
<00:06:00.545>Um, <00:06:00.825>of <00:06:01.105>course <00:06:01.385>that's <00:06:01.665>with <00:06:01.945>the,

110
00:06:02.905 --> 00:06:05.205
<00:06:02.905>all <00:06:03.104>the <00:06:03.304>Java <00:06:03.505>releases <00:06:03.705>from <00:06:03.905>11 <00:06:04.104>to <00:06:04.304>17.

111
00:06:05.205 --> 00:06:09.245
<00:06:05.205>There's <00:06:05.380>been <00:06:05.555>a <00:06:05.729>lot <00:06:05.905>of <00:06:06.080>other <00:06:06.255>features, <00:06:06.430>security <00:06:06.604>enhancements,

112
00:06:09.905 --> 00:06:12.085
<00:06:09.905>um, <00:06:10.104>new <00:06:10.304>garbage <00:06:10.505>collectors <00:06:10.705>and <00:06:10.905>things <00:06:11.104>like <00:06:11.304>that.

113
00:06:12.195 --> 00:06:14.525
<00:06:12.195>This <00:06:12.370>will <00:06:12.545>not <00:06:12.719>be <00:06:12.895>in <00:06:13.070>scope <00:06:13.245>for <00:06:13.420>this <00:06:13.594>lecture.

114
00:06:14.705 --> 00:06:17.965
<00:06:14.705>If <00:06:14.860>you're <00:06:15.016>interested <00:06:15.171>in <00:06:15.327>those, <00:06:15.482>um, <00:06:15.638>you <00:06:15.793>will <00:06:15.949>be <00:06:16.104>able

115
00:06:17.965 --> 00:06:19.845
<00:06:17.965>to <00:06:18.244>find <00:06:18.525>more <00:06:18.804>information <00:06:19.085>in <00:06:19.364>the,

116
00:06:20.225 --> 00:06:22.285
<00:06:20.225>in <00:06:20.425>the <00:06:20.625>release <00:06:20.825>notes <00:06:21.025>from, <00:06:21.225>from <00:06:21.425>Oracle <00:06:21.625>code.

117
00:06:22.345 --> 00:06:26.125
<00:06:22.345>So <00:06:22.485>we're <00:06:22.625>gonna <00:06:22.765>focus <00:06:22.905>on <00:06:23.045>the <00:06:23.185>nine <00:06:23.325>features <00:06:23.465>that <00:06:23.605>actually, <00:06:23.745>uh,

118
00:06:27.255 --> 00:06:28.585
<00:06:27.255>will <00:06:27.654>impact <00:06:28.053>your <00:06:28.452>development.

119
00:06:28.605 --> 00:06:31.545
<00:06:28.605>And <00:06:28.745>there <00:06:28.885>actually <00:06:29.025>is <00:06:29.165>some <00:06:29.305>changes <00:06:29.445>in <00:06:29.585>the <00:06:29.725>Java <00:06:29.865>a <00:06:30.005>PA

120
00:06:33.385 --> 00:06:35.915
<00:06:33.385>feature <00:06:33.664>number <00:06:33.945>one, <00:06:34.224>uh, <00:06:34.505>text <00:06:34.784>blocks.

121
00:06:36.495 --> 00:06:38.315
<00:06:36.495>So <00:06:36.845>let's <00:06:37.195>dig <00:06:37.545>into <00:06:37.895>it.

122
00:06:39.215 --> 00:06:43.395
<00:06:39.215>Um, <00:06:39.390>basically <00:06:39.565>text <00:06:39.740>blocks <00:06:39.915>is, <00:06:40.090>um, <00:06:40.265>a <00:06:40.440>new <00:06:40.615>way

123
00:06:43.415 --> 00:06:45.915
<00:06:43.415>how <00:06:43.615>you <00:06:43.815>can <00:06:44.015>define <00:06:44.215>a, <00:06:44.415>a <00:06:44.615>multi-line <00:06:44.815>string.

124
00:06:46.965 --> 00:06:50.945
<00:06:46.965>And <00:06:47.120>this <00:06:47.276>will <00:06:47.431>help, <00:06:47.587>um, <00:06:47.742>everyone <00:06:47.898>writing <00:06:48.053>Java <00:06:48.209>code, <00:06:48.365>uh,

125
00:06:51.015 --> 00:06:53.145
<00:06:51.015>when <00:06:51.190>you <00:06:51.365>need <00:06:51.539>to <00:06:51.715>use <00:06:51.890>a <00:06:52.065>multi-line <00:06:52.240>string <00:06:52.414>to,

126
00:06:53.165 --> 00:06:56.505
<00:06:53.165>to <00:06:53.340>make <00:06:53.515>it <00:06:53.690>much <00:06:53.865>more, <00:06:54.040>uh, <00:06:54.215>readable <00:06:54.390>for <00:06:54.565>you

127
00:06:56.505 --> 00:06:58.225
<00:06:56.505>as <00:06:56.784>a <00:06:57.065>developer <00:06:57.344>in <00:06:57.625>your <00:06:57.905>id.

128
00:06:58.725 --> 00:07:01.105
<00:06:58.725>You <00:06:58.865>can <00:06:59.005>see <00:06:59.145>the <00:06:59.285>example <00:06:59.425>on, <00:06:59.565>on <00:06:59.705>the <00:06:59.845>left <00:06:59.985>slide, <00:07:00.125>um,

129
00:07:01.365 --> 00:07:02.385
<00:07:01.365>how <00:07:01.548>we <00:07:01.732>had <00:07:01.915>to <00:07:02.099>do <00:07:02.283>this

130
00:07:02.485 --> 00:07:05.785
<00:07:02.485>before, <00:07:02.640>if <00:07:02.796>you, <00:07:02.951>for <00:07:03.107>example, <00:07:03.262>uh, <00:07:03.418>wanted <00:07:03.573>to <00:07:03.729>have <00:07:03.885>a

131
00:07:06.505 --> 00:07:10.685
<00:07:06.505>nicely <00:07:06.680>forted <00:07:06.855>HTML, <00:07:07.030>uh, <00:07:07.205>it <00:07:07.380>looked <00:07:07.555>really <00:07:07.730>bad, <00:07:07.905>uh,

132
00:07:11.345 --> 00:07:13.365
<00:07:11.345>before <00:07:11.695>with <00:07:12.045>a <00:07:12.395>normal <00:07:12.745>string

133
00:07:13.465 --> 00:07:16.365
<00:07:13.465>and <00:07:13.620>with <00:07:13.776>a <00:07:13.931>lot <00:07:14.087>of, <00:07:14.242>uh, <00:07:14.398>new <00:07:14.553>lines <00:07:14.709>and <00:07:14.864>concatenation.

134
00:07:16.945 --> 00:07:18.605
<00:07:16.945>And <00:07:17.224>with <00:07:17.505>this <00:07:17.784>new <00:07:18.065>text <00:07:18.344>block

135
00:07:18.605 --> 00:07:20.005
<00:07:18.605>feature, <00:07:18.920>it <00:07:19.235>looks <00:07:19.550>really <00:07:19.865>nicely.

136
00:07:20.185 --> 00:07:22.765
<00:07:20.185>You <00:07:20.385>basically <00:07:20.585>just <00:07:20.785>define <00:07:20.985>a <00:07:21.185>text <00:07:21.385>block, <00:07:21.585>um,

137
00:07:23.875 --> 00:07:25.245
<00:07:23.875>with <00:07:24.286>three <00:07:24.697>conation <00:07:25.108>marks,

138
00:07:25.305 --> 00:07:28.285
<00:07:25.305>and <00:07:25.460>you <00:07:25.616>can <00:07:25.771>use, <00:07:25.927>uh, <00:07:26.082>multi-line <00:07:26.238>text, <00:07:26.393>uh, <00:07:26.549>in <00:07:26.705>between.

139
00:07:28.905 --> 00:07:30.485
<00:07:28.905>So <00:07:29.255>let's, <00:07:29.604>let's <00:07:29.955>demo <00:07:30.304>this.

140
00:07:30.705 --> 00:07:35.085
<00:07:30.705>Uh, <00:07:30.844>let's <00:07:30.984>go <00:07:31.125>into <00:07:31.265>IntelliJ <00:07:31.405>and <00:07:31.544>just <00:07:31.685>create <00:07:31.825>a <00:07:31.965>new <00:07:32.104>class.

141
00:07:35.295 --> 00:07:38.325
<00:07:35.295>We'll <00:07:35.575>call <00:07:35.855>it <00:07:36.135>text <00:07:36.415>blocks <00:07:36.695>demo.

142
00:07:41.275 --> 00:07:42.605
<00:07:41.275>I'll <00:07:41.514>just <00:07:41.753>use <00:07:41.993>the <00:07:42.232>main <00:07:42.472>class.

143
00:07:43.105 --> 00:07:47.705
<00:07:43.105>And, <00:07:43.338>uh, <00:07:43.571>let's <00:07:43.805>create <00:07:44.038>a <00:07:44.271>string, <00:07:44.505>HTML,

144
00:07:48.725 --> 00:07:51.065
<00:07:48.725>and <00:07:49.005>let's <00:07:49.285>put <00:07:49.565>three <00:07:49.845>quotation <00:07:50.125>marks.

145
00:07:52.365 --> 00:07:55.825
<00:07:52.365>And <00:07:52.505>we <00:07:52.645>created <00:07:52.785>a <00:07:52.925>multiline, <00:07:53.065>uh, <00:07:53.205>string <00:07:53.345>or <00:07:53.485>a <00:07:53.625>text <00:07:53.765>block,

146
00:07:55.885 --> 00:08:00.705
<00:07:55.885>and <00:07:56.012>we <00:07:56.139>can <00:07:56.266>just <00:07:56.394>do, <00:07:56.521>like, <00:07:56.648>enter <00:07:56.775>and <00:07:56.903>create <00:07:57.030>new <00:07:57.157>lines <00:07:57.284>here

147
00:08:01.645 --> 00:08:05.465
<00:08:01.645>and <00:08:01.995>format <00:08:02.344>our <00:08:02.695>HTML <00:08:03.044>appropriately

148
00:08:06.205 --> 00:08:07.745
<00:08:06.205>as <00:08:06.436>we <00:08:06.667>would <00:08:06.897>in <00:08:07.129>any <00:08:07.360>other <00:08:07.591>editor.

149
00:08:08.085 --> 00:08:11.505
<00:08:08.085>So <00:08:08.260>maybe <00:08:08.435>I <00:08:08.609>put <00:08:08.784>an <00:08:08.960>H <00:08:09.135>one <00:08:09.310>in <00:08:09.484>here.

150
00:08:13.055 --> 00:08:14.795
<00:08:13.055>And <00:08:13.230>let's <00:08:13.405>say <00:08:13.580>we <00:08:13.755>wanna <00:08:13.930>put <00:08:14.105>in <00:08:14.280>some <00:08:14.455>title

151
00:08:14.865 --> 00:08:15.995
<00:08:14.865>here <00:08:15.204>as <00:08:15.543>a <00:08:15.882>parameter.

152
00:08:16.205 --> 00:08:18.155
<00:08:16.205>We'll, <00:08:16.405>we'll <00:08:16.604>imagine <00:08:16.805>that <00:08:17.005>this <00:08:17.205>is <00:08:17.405>a <00:08:17.604>method

153
00:08:18.255 --> 00:08:20.875
<00:08:18.255>and <00:08:18.455>that <00:08:18.655>maybe <00:08:18.855>we <00:08:19.055>will <00:08:19.255>get <00:08:19.455>some <00:08:19.655>title

154
00:08:21.235 --> 00:08:22.635
<00:08:21.235>provided <00:08:21.487>as <00:08:21.739>an, <00:08:21.991>as <00:08:22.243>an <00:08:22.495>argument.

155
00:08:24.875 --> 00:08:27.295
<00:08:24.875>Um, <00:08:25.015>and <00:08:25.155>what <00:08:25.295>we <00:08:25.435>can <00:08:25.575>do, <00:08:25.715>we <00:08:25.855>can <00:08:25.995>also <00:08:26.135>call, <00:08:26.275>uh,

156
00:08:27.885 --> 00:08:31.575
<00:08:27.885>different <00:08:28.085>methods <00:08:28.284>on, <00:08:28.485>on <00:08:28.685>this, <00:08:28.885>uh, <00:08:29.085>type <00:08:29.284>block.

157
00:08:31.875 --> 00:08:34.095
<00:08:31.875>Uh, <00:08:32.075>and <00:08:32.275>if <00:08:32.475>we <00:08:32.674>call <00:08:32.875>the <00:08:33.075>formatted <00:08:33.275>method,

158
00:08:34.165 --> 00:08:36.335
<00:08:34.164>then <00:08:34.398>we <00:08:34.631>can <00:08:34.865>send <00:08:35.098>parameters <00:08:35.331>to <00:08:35.564>it.

159
00:08:36.435 --> 00:08:37.815
<00:08:36.434>For <00:08:36.683>example, <00:08:36.931>we'll <00:08:37.180>send <00:08:37.428>a <00:08:37.677>title

160
00:08:38.515 --> 00:08:43.455
<00:08:38.515>and <00:08:38.655>we <00:08:38.794>expect <00:08:38.934>this <00:08:39.074>to <00:08:39.215>actually <00:08:39.355>return <00:08:39.495>on <00:08:39.635>HTML <00:08:39.775>with, <00:08:39.914>um,

161
00:08:44.125 --> 00:08:46.695
<00:08:44.125>with <00:08:44.358>Java <00:08:44.591>SE <00:08:44.825>17 <00:08:45.058>in <00:08:45.291>H <00:08:45.525>one.

162
00:08:46.835 --> 00:08:48.695
<00:08:46.835>So <00:08:47.115>let's <00:08:47.395>see <00:08:47.675>if <00:08:47.955>that <00:08:48.235>is

163
00:08:48.695 --> 00:08:52.225
<00:08:48.695>what <00:08:48.895>we'll <00:08:49.095>get <00:08:49.295>if <00:08:49.495>we <00:08:49.695>print <00:08:49.895>this <00:08:50.095>out.

164
00:08:55.345 --> 00:08:58.365
<00:08:55.345>So <00:08:55.500>let's <00:08:55.656>print <00:08:55.811>out <00:08:55.967>that <00:08:56.122>HTML <00:08:56.278>compile <00:08:56.433>and <00:08:56.589>run <00:08:56.745>this,

165
00:09:01.075 --> 00:09:04.095
<00:09:01.075>and <00:09:01.230>you'll <00:09:01.386>see <00:09:01.541>that <00:09:01.697>we <00:09:01.852>got <00:09:02.008>exactly <00:09:02.163>what <00:09:02.319>we <00:09:02.475>expected,

166
00:09:04.315 --> 00:09:07.095
<00:09:04.315>so <00:09:04.548>we <00:09:04.781>got <00:09:05.015>nicely, <00:09:05.248>uh, <00:09:05.481>printed <00:09:05.715>out

167
00:09:07.095 --> 00:09:11.655
<00:09:07.095>and <00:09:07.222>formatted <00:09:07.349>HTML <00:09:07.476>the <00:09:07.604>same <00:09:07.731>way <00:09:07.858>as <00:09:07.985>it's <00:09:08.113>formatted <00:09:08.240>in <00:09:08.367>our <00:09:08.495>id.

168
00:09:12.075 --> 00:09:15.855
<00:09:12.075>So <00:09:12.191>I'm <00:09:12.308>sure <00:09:12.425>every <00:09:12.541>one <00:09:12.658>of <00:09:12.775>you <00:09:12.891>that's <00:09:13.008>working <00:09:13.125>a <00:09:13.241>lot <00:09:13.358>with, <00:09:13.475>um,

169
00:09:16.115 --> 00:09:20.735
<00:09:16.115>web <00:09:16.242>development, <00:09:16.369>uh, <00:09:16.496>and <00:09:16.624>had <00:09:16.751>to <00:09:16.878>write <00:09:17.005>HTML <00:09:17.133>code <00:09:17.260>in, <00:09:17.387>in <00:09:17.515>Java.

170
00:09:20.735 --> 00:09:22.335
<00:09:20.735>We'll <00:09:21.085>definitely <00:09:21.435>appreciate <00:09:21.785>this <00:09:22.135>feature.

171
00:09:24.135 --> 00:09:27.585
<00:09:24.135>Okay, <00:09:24.485>next <00:09:24.835>feature <00:09:25.185>enhanced <00:09:25.535>switch.

172
00:09:27.925 --> 00:09:29.545
<00:09:27.925>Um, <00:09:28.125>so <00:09:28.324>there's <00:09:28.525>been <00:09:28.724>a <00:09:28.925>lot <00:09:29.125>of <00:09:29.324>changes

173
00:09:29.645 --> 00:09:33.305
<00:09:29.645>to <00:09:29.785>the <00:09:29.925>switch <00:09:30.064>statements, <00:09:30.204>um, <00:09:30.345>in <00:09:30.485>the, <00:09:30.625>in <00:09:30.765>the <00:09:30.905>latest <00:09:31.045>Java,

174
00:09:33.755 --> 00:09:36.785
<00:09:33.755>which <00:09:33.955>makes <00:09:34.155>switch <00:09:34.355>statements <00:09:34.555>a <00:09:34.755>lot <00:09:34.955>more <00:09:35.155>useful

175
00:09:36.845 --> 00:09:38.145
<00:09:36.845>now, <00:09:37.079>at <00:09:37.313>least <00:09:37.547>in <00:09:37.781>my <00:09:38.015>opinion.

176
00:09:38.365 --> 00:09:39.825
<00:09:38.365>So <00:09:38.584>if <00:09:38.803>you <00:09:39.022>look <00:09:39.241>at <00:09:39.460>before <00:09:39.679>and

177
00:09:39.825 --> 00:09:43.785
<00:09:39.825>after, <00:09:39.965>uh, <00:09:40.105>example <00:09:40.245>here, <00:09:40.385>so <00:09:40.525>here <00:09:40.665>it's <00:09:40.805>a, <00:09:40.945>it's <00:09:41.085>an <00:09:41.225>example

178
00:09:43.785 --> 00:09:47.225
<00:09:43.785>where <00:09:43.940>we <00:09:44.096>are <00:09:44.251>just, <00:09:44.407>uh, <00:09:44.562>trying <00:09:44.718>to <00:09:44.873>return <00:09:45.029>the <00:09:45.185>number

179
00:09:47.225 --> 00:09:49.465
<00:09:47.225>of <00:09:47.380>letters <00:09:47.536>in <00:09:47.691>a <00:09:47.847>specific <00:09:48.002>day, <00:09:48.158>which <00:09:48.313>is <00:09:48.469>a <00:09:48.625>enum.

180
00:09:50.365 --> 00:09:52.505
<00:09:50.365>Um, <00:09:50.598>and <00:09:50.831>you <00:09:51.065>can <00:09:51.298>see <00:09:51.531>Monday, <00:09:51.765>Friday,

181
00:09:52.505 --> 00:09:53.745
<00:09:52.505>Sunday, <00:09:52.784>they <00:09:53.063>have <00:09:53.342>six <00:09:53.621>letters.

182
00:09:53.845 --> 00:09:56.065
<00:09:53.845>So <00:09:54.045>that's <00:09:54.245>why <00:09:54.445>we, <00:09:54.645>we, <00:09:54.845>uh, <00:09:55.045>return <00:09:55.245>six

183
00:09:56.065 --> 00:09:57.825
<00:09:56.065>and <00:09:56.265>then <00:09:56.465>we, <00:09:56.665>we <00:09:56.865>need <00:09:57.065>to <00:09:57.265>break, <00:09:57.465>right?

184
00:09:58.215 --> 00:10:02.105
<00:09:58.215>Because, <00:09:58.370>um, <00:09:58.526>in <00:09:58.681>previous <00:09:58.837>versions <00:09:58.992>of <00:09:59.148>switch, <00:09:59.303>it <00:09:59.459>always, <00:09:59.615>uh,

185
00:10:02.565 --> 00:10:05.305
<00:10:02.565>it <00:10:02.740>always <00:10:02.915>fell <00:10:03.090>down, <00:10:03.265>um, <00:10:03.440>to <00:10:03.615>the <00:10:03.790>next <00:10:03.965>case.

186
00:10:05.405 --> 00:10:08.705
<00:10:05.405>If <00:10:05.545>you <00:10:05.685>didn't <00:10:05.824>explicitly <00:10:05.964>break, <00:10:06.105>uh, <00:10:06.245>this <00:10:06.385>is <00:10:06.525>not <00:10:06.665>the <00:10:06.805>case

187
00:10:08.775 --> 00:10:11.645
<00:10:08.775>with, <00:10:09.055>with <00:10:09.334>a <00:10:09.615>new <00:10:09.895>switch <00:10:10.175>syntax

188
00:10:11.645 --> 00:10:13.045
<00:10:11.645>that <00:10:11.824>you <00:10:12.005>can <00:10:12.185>see <00:10:12.365>on <00:10:12.545>the <00:10:12.724>right <00:10:12.905>side,

189
00:10:13.505 --> 00:10:15.405
<00:10:13.505>you <00:10:13.738>can <00:10:13.971>see <00:10:14.205>basically <00:10:14.438>the <00:10:14.671>same <00:10:14.905>implementation.

190
00:10:15.585 --> 00:10:17.965
<00:10:15.585>You <00:10:15.818>can <00:10:16.051>see, <00:10:16.285>uh, <00:10:16.518>two <00:10:16.751>major <00:10:16.985>differences.

191
00:10:18.105 --> 00:10:20.365
<00:10:18.105>One <00:10:18.280>is <00:10:18.455>that <00:10:18.630>we <00:10:18.805>can <00:10:18.980>have <00:10:19.155>multiple <00:10:19.330>cases <00:10:19.505>defined,

192
00:10:20.505 --> 00:10:21.525
<00:10:20.505>uh, <00:10:20.964>with <00:10:21.423>commas.

193
00:10:22.285 --> 00:10:24.945
<00:10:22.285>And <00:10:22.425>the <00:10:22.564>second <00:10:22.704>thing <00:10:22.844>is <00:10:22.985>you <00:10:23.125>see <00:10:23.265>this <00:10:23.405>lamb <00:10:23.545>thelike <00:10:23.685>syntax,

194
00:10:25.485 --> 00:10:28.505
<00:10:25.485>uh, <00:10:25.612>which <00:10:25.739>basically <00:10:25.866>is <00:10:25.994>a, <00:10:26.121>is <00:10:26.248>a <00:10:26.375>return <00:10:26.503>statement <00:10:26.630>of <00:10:26.757>a <00:10:26.885>switch,

195
00:10:28.505 --> 00:10:31.025
<00:10:28.505>and <00:10:28.680>there <00:10:28.855>is <00:10:29.030>no <00:10:29.205>need <00:10:29.380>to <00:10:29.555>break <00:10:29.730>anymore, <00:10:29.905>uh,

196
00:10:31.025 --> 00:10:32.865
<00:10:31.025>because <00:10:31.305>the, <00:10:31.584>the <00:10:31.865>new <00:10:32.145>switch, <00:10:32.425>um,

197
00:10:33.005 --> 00:10:36.265
<00:10:33.005>syntax <00:10:33.145>will <00:10:33.285>not <00:10:33.425>fall <00:10:33.564>down <00:10:33.705>anymore <00:10:33.845>as <00:10:33.985>the <00:10:34.125>old <00:10:34.265>one <00:10:34.405>did.

198
00:10:37.045 --> 00:10:40.665
<00:10:37.045>Um, <00:10:37.219>we <00:10:37.395>can <00:10:37.569>also <00:10:37.745>quickly <00:10:37.920>try <00:10:38.094>to <00:10:38.270>demo <00:10:38.444>this.

199
00:10:42.375 --> 00:10:44.075
<00:10:42.375>So <00:10:42.575>I <00:10:42.775>already <00:10:42.975>have <00:10:43.175>this <00:10:43.375>in, <00:10:43.575>in <00:10:43.775>place.

200
00:10:44.335 --> 00:10:47.715
<00:10:44.335>So <00:10:44.568>let's <00:10:44.801>call <00:10:45.035>this <00:10:45.268>class <00:10:45.501>enhanced <00:10:45.735>switch.

201
00:10:51.025 --> 00:10:52.935
<00:10:51.025>Let's <00:10:51.305>use <00:10:51.584>the <00:10:51.865>main <00:10:52.145>method <00:10:52.425>again.

202
00:10:53.355 --> 00:10:57.135
<00:10:53.355>Uh, <00:10:53.530>we <00:10:53.705>already <00:10:53.880>have <00:10:54.055>this <00:10:54.230>day <00:10:54.405>in, <00:10:54.580>so <00:10:54.755>let's

203
00:10:57.925 --> 00:10:59.215
<00:10:57.925>just <00:10:58.312>reference <00:10:58.699>it <00:10:59.086>here.

204
00:11:00.915 --> 00:11:04.735
<00:11:00.915>And <00:11:01.070>let's <00:11:01.226>say <00:11:01.381>that <00:11:01.537>we <00:11:01.692>wanna <00:11:01.848>use, <00:11:02.003>I <00:11:02.159>dunno, <00:11:02.314>Tuesday,

205
00:11:05.795 --> 00:11:09.855
<00:11:05.795>and <00:11:06.074>then <00:11:06.354>we <00:11:06.635>create, <00:11:06.915>uh, <00:11:07.194>number

206
00:11:10.235 --> 00:11:12.775
<00:11:10.235>of <00:11:10.435>letters, <00:11:10.635>and <00:11:10.835>then <00:11:11.035>we <00:11:11.235>use <00:11:11.435>a <00:11:11.635>switch

207
00:11:13.555 --> 00:11:15.215
<00:11:13.555>and <00:11:13.788>we'll <00:11:14.021>switch <00:11:14.255>based <00:11:14.488>on <00:11:14.721>the <00:11:14.954>day.

208
00:11:24.655 --> 00:11:29.525
<00:11:24.655>And <00:11:24.935>now, <00:11:25.214>uh, <00:11:25.495>of <00:11:25.775>course, <00:11:26.055>uh,

209
00:11:29.825 --> 00:11:31.205
<00:11:29.825>we <00:11:30.073>don't <00:11:30.321>really <00:11:30.570>need <00:11:30.818>a <00:11:31.067>default.

210
00:11:32.965 --> 00:11:37.025
<00:11:32.965>We <00:11:33.315>need, <00:11:33.665>um, <00:11:34.015>case <00:11:34.365>Monday

211
00:11:38.125 --> 00:11:41.385
<00:11:38.125>and <00:11:38.300>we <00:11:38.475>return <00:11:38.650>six <00:11:38.825>because <00:11:39.000>Monday <00:11:39.175>has <00:11:39.350>six <00:11:39.525>letters.

212
00:11:41.885 --> 00:11:46.865
<00:11:41.885>And <00:11:42.012>then <00:11:42.139>of <00:11:42.266>course, <00:11:42.394>uh, <00:11:42.521>we <00:11:42.648>need <00:11:42.775>all <00:11:42.903>the, <00:11:43.030>all <00:11:43.157>the, <00:11:43.285>we,

213
00:11:46.865 --> 00:11:48.185
<00:11:46.865>we <00:11:47.063>need <00:11:47.261>to <00:11:47.459>cover <00:11:47.656>all <00:11:47.854>the <00:11:48.053>values.

214
00:11:48.925 --> 00:11:53.885
<00:11:48.925>Um, <00:11:49.052>so <00:11:49.179>there <00:11:49.306>is <00:11:49.434>a <00:11:49.561>couple <00:11:49.688>of <00:11:49.815>other, <00:11:49.943>um, <00:11:50.070>days <00:11:50.197>in <00:11:50.324>week

215
00:11:53.885 --> 00:11:57.005
<00:11:53.885>that <00:11:54.060>have <00:11:54.235>six, <00:11:54.410>uh, <00:11:54.585>number <00:11:54.760>of <00:11:54.935>letters <00:11:55.110>in <00:11:55.285>them.

216
00:11:57.105 --> 00:12:00.925
<00:11:57.105>So <00:11:57.245>one <00:11:57.385>of <00:11:57.525>them <00:11:57.665>is <00:11:57.805>Friday, <00:11:57.945>second <00:11:58.085>one <00:11:58.225>is, <00:11:58.365>uh, <00:11:58.505>Sunday,

217
00:12:01.425 --> 00:12:04.615
<00:12:01.425>and <00:12:01.658>then <00:12:01.891>I <00:12:02.125>think <00:12:02.358>Tuesday <00:12:02.591>has <00:12:02.824>seven.

218
00:12:05.615 --> 00:12:07.645
<00:12:05.615>We'll <00:12:05.815>delete <00:12:06.015>those <00:12:06.215>cases. <00:12:06.415>We <00:12:06.615>don't <00:12:06.815>meet <00:12:07.015>them.

219
00:12:08.395 --> 00:12:09.365
<00:12:08.395>Wednesday <00:12:09.268>has

220
00:12:10.185 --> 00:12:13.485
<00:12:10.185>2, <00:12:10.464>4, <00:12:10.744>6, <00:12:11.025>8, <00:12:11.305>9 <00:12:11.584>letters.

221
00:12:13.825 --> 00:12:15.045
<00:12:13.825>So <00:12:14.044>let's <00:12:14.264>put <00:12:14.483>a <00:12:14.703>nine <00:12:14.923>there.

222
00:12:15.345 --> 00:12:17.045
<00:12:15.345>Uh, <00:12:15.695>and <00:12:16.045>I <00:12:16.395>think <00:12:16.745>Thursday

223
00:12:17.045 --> 00:12:17.845
<00:12:17.045>and <00:12:17.405>Saturday <00:12:17.765>have

224
00:12:17.845 --> 00:12:22.525
<00:12:17.845>8, <00:12:18.000>2, <00:12:18.156>4, <00:12:18.311>6, <00:12:18.467>8, <00:12:18.622>2, <00:12:18.778>4, <00:12:18.933>6, <00:12:19.089>8, <00:12:19.245>right?

225
00:12:23.425 --> 00:12:25.365
<00:12:23.425>So <00:12:23.704>those <00:12:23.984>two <00:12:24.265>will <00:12:24.545>have <00:12:24.824>eight.

226
00:12:26.725 --> 00:12:29.105
<00:12:26.725>So <00:12:27.005>this <00:12:27.285>is <00:12:27.565>our <00:12:27.845>switch <00:12:28.125>statement.

227
00:12:29.445 --> 00:12:34.145
<00:12:29.445>Uh, <00:12:29.620>again, <00:12:29.795>let's <00:12:29.970>try <00:12:30.145>to <00:12:30.320>compile <00:12:30.495>this <00:12:30.670>and <00:12:30.845>run.

228
00:12:35.125 --> 00:12:37.025
<00:12:35.125>Uh, <00:12:35.325>so <00:12:35.525>we <00:12:35.725>wanna <00:12:35.925>print <00:12:36.125>out <00:12:36.325>the <00:12:36.525>number

229
00:12:37.025 --> 00:12:38.865
<00:12:37.025>of <00:12:37.305>letters <00:12:37.584>we <00:12:37.865>passed <00:12:38.145>on <00:12:38.425>Tuesday.

230
00:12:39.165 --> 00:12:43.105
<00:12:39.165>So <00:12:39.305>we <00:12:39.444>are <00:12:39.584>expecting <00:12:39.724>to <00:12:39.865>get <00:12:40.005>number <00:12:40.145>seven <00:12:40.285>as <00:12:40.425>the <00:12:40.564>output,

231
00:12:43.845 --> 00:12:45.025
<00:12:43.845>and <00:12:44.057>that's <00:12:44.269>exactly <00:12:44.482>what <00:12:44.694>we <00:12:44.906>get.

232
00:12:45.025 --> 00:12:46.385
<00:12:45.025>And <00:12:45.178>you <00:12:45.331>can <00:12:45.484>see <00:12:45.637>it <00:12:45.790>doesn't <00:12:45.943>fall <00:12:46.096>back, <00:12:46.249>right?

233
00:12:46.605 --> 00:12:50.225
<00:12:46.605>It <00:12:46.745>doesn't <00:12:46.885>fall <00:12:47.025>down <00:12:47.165>because <00:12:47.305>if <00:12:47.445>we <00:12:47.585>did <00:12:47.725>fall <00:12:47.865>down, <00:12:48.005>uh,

234
00:12:50.295 --> 00:12:51.745
<00:12:50.295>then <00:12:50.512>we <00:12:50.730>would <00:12:50.947>get <00:12:51.165>an <00:12:51.382>eight <00:12:51.600>here.

235
00:12:51.885 --> 00:12:53.145
<00:12:51.885>Uh, <00:12:52.074>and <00:12:52.263>we <00:12:52.452>are <00:12:52.641>getting <00:12:52.829>a <00:12:53.019>seven,

236
00:12:53.195 --> 00:12:54.705
<00:12:53.195>which <00:12:53.466>is <00:12:53.738>exactly <00:12:54.010>what <00:12:54.282>we <00:12:54.554>expect.

237
00:12:54.765 --> 00:12:57.745
<00:12:54.765>And <00:12:54.920>this <00:12:55.076>works <00:12:55.231>out <00:12:55.387>of <00:12:55.542>the <00:12:55.698>box <00:12:55.853>without <00:12:56.009>explicitly <00:12:56.165>having

238
00:12:57.845 --> 00:13:01.305
<00:12:57.845>to <00:12:58.045>break <00:12:58.245>out <00:12:58.445>from <00:12:58.645>the, <00:12:58.845>uh, <00:12:59.045>switch <00:12:59.245>case.

239
00:13:06.975 --> 00:13:10.545
<00:13:06.975>Another <00:13:07.150>feature <00:13:07.325>that's <00:13:07.500>gonna <00:13:07.675>be <00:13:07.850>very <00:13:08.025>handy, <00:13:08.200>I <00:13:08.375>believe.

240
00:13:11.765 --> 00:13:14.545
<00:13:11.765>Um, <00:13:11.939>and <00:13:12.115>the <00:13:12.290>next <00:13:12.465>one <00:13:12.640>that <00:13:12.814>we're <00:13:12.990>gonna <00:13:13.165>talk

241
00:13:14.685 --> 00:13:16.785
<00:13:14.685>and <00:13:15.035>demo <00:13:15.385>is <00:13:15.734>pattern <00:13:16.084>matching.

242
00:13:17.085 --> 00:13:20.065
<00:13:17.085>And, <00:13:17.285>um, <00:13:17.485>pattern <00:13:17.685>matching <00:13:17.885>is <00:13:18.085>actually <00:13:18.285>a <00:13:18.485>feature

243
00:13:20.125 --> 00:13:24.585
<00:13:20.125>that's <00:13:20.358>been <00:13:20.591>applied <00:13:20.825>to <00:13:21.058>different, <00:13:21.291>um, <00:13:21.525>uh,

244
00:13:24.925 --> 00:13:26.505
<00:13:24.925>to, <00:13:25.275>to <00:13:25.625>different <00:13:25.974>operators <00:13:26.324>and,

245
00:13:26.505 --> 00:13:27.785
<00:13:26.505>and <00:13:26.793>different <00:13:27.081>statements <00:13:27.369>in <00:13:27.656>Java.

246
00:13:28.505 --> 00:13:30.685
<00:13:28.505>One <00:13:28.705>of <00:13:28.905>the <00:13:29.105>applications <00:13:29.305>of <00:13:29.505>pattern <00:13:29.705>matching <00:13:29.905>is

247
00:13:30.685 --> 00:13:32.325
<00:13:30.685>for <00:13:31.035>the <00:13:31.385>instance <00:13:31.734>of <00:13:32.084>operator.

248
00:13:32.945 --> 00:13:36.285
<00:13:32.945>So <00:13:33.178>let's <00:13:33.411>check <00:13:33.645>that <00:13:33.878>one <00:13:34.111>first, <00:13:34.345>uh,

249
00:13:37.165 --> 00:13:39.845
<00:13:37.165>instance <00:13:37.305>office <00:13:37.444>is, <00:13:37.584>is <00:13:37.724>used <00:13:37.865>when <00:13:38.005>you <00:13:38.145>wanna <00:13:38.285>check <00:13:38.425>if <00:13:38.564>an

250
00:13:39.845 --> 00:13:42.645
<00:13:39.845>unknown <00:13:39.985>object <00:13:40.125>is <00:13:40.265>an <00:13:40.405>instance <00:13:40.545>of <00:13:40.685>a <00:13:40.825>specific <00:13:40.965>class <00:13:41.105>or, <00:13:41.245>um,

251
00:13:43.305 --> 00:13:44.605
<00:13:43.305>or <00:13:43.597>a, <00:13:43.890>or <00:13:44.182>an <00:13:44.475>interface.

252
00:13:44.865 --> 00:13:48.685
<00:13:44.865>And <00:13:45.020>basically, <00:13:45.176>um, <00:13:45.331>there <00:13:45.487>is <00:13:45.642>just <00:13:45.798>one <00:13:45.953>small <00:13:46.109>improvement <00:13:46.265>with,

253
00:13:48.715 --> 00:13:51.845
<00:13:48.715>with, <00:13:48.948>uh, <00:13:49.181>with <00:13:49.415>time <00:13:49.648>type <00:13:49.881>patterns, <00:13:50.115>is

254
00:13:51.915 --> 00:13:55.845
<00:13:51.915>that <00:13:52.115>you <00:13:52.314>can <00:13:52.515>now <00:13:52.714>completely <00:13:52.915>avoid <00:13:53.115>this <00:13:53.314>casting

255
00:13:55.875 --> 00:13:56.965
<00:13:55.875>that <00:13:56.071>we <00:13:56.267>had <00:13:56.463>to <00:13:56.659>do <00:13:56.856>before.

256
00:13:57.385 --> 00:13:59.405
<00:13:57.385>So <00:13:57.560>when <00:13:57.735>you <00:13:57.910>check <00:13:58.085>different <00:13:58.260>object <00:13:58.435>is <00:13:58.610>an <00:13:58.785>instance

257
00:13:59.405 --> 00:14:03.525
<00:13:59.405>of <00:13:59.560>something <00:13:59.716>you <00:13:59.871>needed <00:14:00.027>to <00:14:00.182>explicitly <00:14:00.338>cast <00:14:00.493>it <00:14:00.649>into, <00:14:00.805>into

258
00:14:03.525 --> 00:14:07.925
<00:14:03.525>that, <00:14:03.758>uh, <00:14:03.991>uh, <00:14:04.225>variable <00:14:04.458>of <00:14:04.691>that <00:14:04.925>type.

259
00:14:08.305 --> 00:14:12.605
<00:14:08.305>And <00:14:08.432>you <00:14:08.559>can <00:14:08.686>do, <00:14:08.814>uh, <00:14:08.941>this <00:14:09.068>now, <00:14:09.195>uh, <00:14:09.323>in <00:14:09.450>the <00:14:09.577>same <00:14:09.704>line

260
00:14:12.605 --> 00:14:14.045
<00:14:12.605>where <00:14:12.821>you <00:14:13.037>do <00:14:13.253>the <00:14:13.468>instance <00:14:13.685>of <00:14:13.901>checks.

261
00:14:14.145 --> 00:14:18.525
<00:14:14.145>So <00:14:14.319>you <00:14:14.495>can <00:14:14.670>assign <00:14:14.845>your, <00:14:15.020>um, <00:14:15.194>object <00:14:15.370>to <00:14:15.545>a

262
00:14:19.125 --> 00:14:21.485
<00:14:19.125>variable <00:14:19.405>named <00:14:19.685>in <00:14:19.965>this <00:14:20.245>example, <00:14:20.525>s

263
00:14:21.485 --> 00:14:24.645
<00:14:21.485>and <00:14:21.660>then <00:14:21.835>this <00:14:22.010>variable <00:14:22.185>will <00:14:22.360>be <00:14:22.535>available <00:14:22.710>in <00:14:22.885>this,

264
00:14:25.025 --> 00:14:26.205
<00:14:25.025>um, <00:14:25.556>if <00:14:26.087>statement.

265
00:14:26.985 --> 00:14:29.005
<00:14:26.985>Uh, <00:14:27.265>it's <00:14:27.545>a <00:14:27.825>very, <00:14:28.105>very <00:14:28.385>simple

266
00:14:29.105 --> 00:14:31.845
<00:14:29.105>but, <00:14:29.305>um, <00:14:29.505>handy <00:14:29.705>thing <00:14:29.905>to <00:14:30.105>simplify <00:14:30.305>type <00:14:30.505>checking.

267
00:14:32.225 --> 00:14:34.245
<00:14:32.225>Uh, <00:14:32.458>let's <00:14:32.691>demo <00:14:32.925>this <00:14:33.158>one <00:14:33.391>as <00:14:33.625>well.

268
00:14:36.335 --> 00:14:39.635
<00:14:36.335>So <00:14:36.615>let's <00:14:36.895>call <00:14:37.175>this, <00:14:37.455>um, <00:14:37.735>instance

269
00:14:40.095 --> 00:14:41.515
<00:14:40.095>of <00:14:41.373>check.

270
00:14:45.535 --> 00:14:46.675
<00:14:45.535>Create <00:14:45.877>a <00:14:46.218>main <00:14:46.560>class.

271
00:14:47.045 --> 00:14:48.755
<00:14:47.045>Let's <00:14:47.511>use <00:14:47.978>a <00:14:48.444>string,

272
00:14:50.185 --> 00:14:52.045
<00:14:50.185>or <00:14:50.464>let's <00:14:50.744>actually <00:14:51.025>use <00:14:51.305>an <00:14:51.584>object

273
00:14:52.235 --> 00:14:55.385
<00:14:52.235>because <00:14:52.585>it'll <00:14:52.935>be <00:14:53.285>a <00:14:53.635>string,

274
00:14:55.405 --> 00:14:57.545
<00:14:55.405>but <00:14:55.560>we'll <00:14:55.716>pretend <00:14:55.871>that <00:14:56.027>we <00:14:56.182>don't <00:14:56.338>know <00:14:56.493>it's <00:14:56.649>a <00:14:56.805>string.

275
00:14:57.645 --> 00:15:01.065
<00:14:57.645>And <00:14:57.878>then <00:14:58.111>if <00:14:58.345>we <00:14:58.578>do, <00:14:58.811>um, <00:14:59.045>object

276
00:15:02.615 --> 00:15:06.415
<00:15:02.615>instance <00:15:02.770>of <00:15:02.926>string, <00:15:03.081>we <00:15:03.237>can <00:15:03.392>assign <00:15:03.548>it <00:15:03.703>to <00:15:03.859>a <00:15:04.015>variable,

277
00:15:06.875 --> 00:15:08.375
<00:15:06.875>uh, <00:15:07.325>STR <00:15:07.775>for <00:15:08.225>example.

278
00:15:08.675 --> 00:15:12.745
<00:15:08.675>And <00:15:08.908>we <00:15:09.141>can <00:15:09.375>say <00:15:09.608>something <00:15:09.841>like <00:15:10.074>this,

279
00:15:13.525 --> 00:15:18.325
<00:15:13.525>um, <00:15:14.225>is <00:15:14.925>a

280
00:15:18.505 --> 00:15:21.605
<00:15:18.505>string <00:15:18.785>and <00:15:19.064>maybe <00:15:19.345>printed <00:15:19.625>out <00:15:19.905>immediately.

281
00:15:21.605 --> 00:15:26.085
<00:15:21.605>You <00:15:21.745>can <00:15:21.885>see <00:15:22.025>that <00:15:22.165>this <00:15:22.305>STR <00:15:22.445>variable <00:15:22.585>is <00:15:22.725>now <00:15:22.865>available, <00:15:23.005>uh,

282
00:15:26.145 --> 00:15:29.045
<00:15:26.145>in <00:15:26.319>the <00:15:26.495>if <00:15:26.670>condition <00:15:26.845>without <00:15:27.020>us <00:15:27.194>explicitly <00:15:27.370>casting <00:15:27.545>it.

283
00:15:29.465 --> 00:15:32.805
<00:15:29.465>So <00:15:29.698>let's <00:15:29.931>just <00:15:30.165>have <00:15:30.398>an <00:15:30.631>else <00:15:30.865>clause

284
00:15:33.345 --> 00:15:35.775
<00:15:33.345>and <00:15:33.811>say <00:15:34.278>another <00:15:34.745>string.

285
00:15:37.505 --> 00:15:38.725
<00:15:37.505>And <00:15:37.779>again, <00:15:38.054>I <00:15:38.328>will <00:15:38.603>compile

286
00:15:38.725 --> 00:15:40.805
<00:15:38.725>and <00:15:38.880>run <00:15:39.036>this, <00:15:39.191>just <00:15:39.347>that <00:15:39.502>you <00:15:39.658>see <00:15:39.813>that <00:15:39.969>this <00:15:40.125>works

287
00:15:42.275 --> 00:15:44.655
<00:15:42.275>and <00:15:42.508>we <00:15:42.741>get <00:15:42.975>actually <00:15:43.208>what <00:15:43.441>we <00:15:43.675>expect.

288
00:15:44.995 --> 00:15:48.055
<00:15:44.995>Uh, <00:15:45.135>this <00:15:45.275>is <00:15:45.415>a <00:15:45.555>string <00:15:45.695>and <00:15:45.835>we <00:15:45.975>get <00:15:46.115>it <00:15:46.255>printed <00:15:46.395>out

289
00:15:48.055 --> 00:15:50.015
<00:15:48.055>because <00:15:48.229>we <00:15:48.405>assign <00:15:48.579>it <00:15:48.755>here <00:15:48.930>to <00:15:49.104>the <00:15:49.280>string <00:15:49.454>variable,

290
00:15:52.655 --> 00:15:54.765
<00:15:52.655>small <00:15:52.888>enhancement, <00:15:53.121>but <00:15:53.355>again, <00:15:53.588>a <00:15:53.821>handy <00:15:54.055>one.

291
00:15:55.025 --> 00:15:58.805
<00:15:55.025>Uh, <00:15:55.258>moving <00:15:55.491>on <00:15:55.725>to <00:15:55.958>the <00:15:56.191>next <00:15:56.425>feature.

292
00:16:00.985 --> 00:16:03.845
<00:16:00.985>And <00:16:01.160>the <00:16:01.335>next <00:16:01.510>feature <00:16:01.685>is, <00:16:01.860>again, <00:16:02.035>around <00:16:02.210>pattern <00:16:02.385>matching.

293
00:16:04.025 --> 00:16:05.485
<00:16:04.025>Um, <00:16:04.353>and <00:16:04.682>I <00:16:05.010>mentioned <00:16:05.339>it's,

294
00:16:05.555 --> 00:16:07.445
<00:16:05.555>it's <00:16:05.834>been <00:16:06.114>applied <00:16:06.395>in <00:16:06.675>several <00:16:06.954>places.

295
00:16:07.665 --> 00:16:09.165
<00:16:07.665>And, <00:16:08.002>um, <00:16:08.339>the <00:16:08.677>second <00:16:09.015>place

296
00:16:09.165 --> 00:16:11.205
<00:16:09.165>where <00:16:09.398>pattern <00:16:09.631>matching <00:16:09.865>has <00:16:10.098>been <00:16:10.331>applied <00:16:10.564>is

297
00:16:11.945 --> 00:16:13.005
<00:16:11.945>the <00:16:12.422>switch <00:16:12.899>statement.

298
00:16:13.705 --> 00:16:17.005
<00:16:13.705>Uh, <00:16:13.880>however, <00:16:14.055>keep <00:16:14.230>in <00:16:14.405>mind <00:16:14.580>that <00:16:14.755>this <00:16:14.930>is, <00:16:15.105>um,

299
00:16:17.015 --> 00:16:19.045
<00:16:17.015>still <00:16:17.248>a <00:16:17.481>preview <00:16:17.715>feature <00:16:17.948>in <00:16:18.181>Java <00:16:18.415>17.

300
00:16:19.225 --> 00:16:24.095
<00:16:19.225>So, <00:16:19.425>uh, <00:16:19.625>basically <00:16:19.825>pattern <00:16:20.025>matching <00:16:20.225>in <00:16:20.425>switch <00:16:20.625>will,

301
00:16:24.515 --> 00:16:27.415
<00:16:24.515>uh, <00:16:24.715>again, <00:16:24.915>make <00:16:25.115>switch <00:16:25.314>a <00:16:25.515>bit <00:16:25.715>more <00:16:25.915>useful

302
00:16:27.555 --> 00:16:30.975
<00:16:27.555>and <00:16:27.788>enable <00:16:28.021>us <00:16:28.255>a <00:16:28.488>finer <00:16:28.721>case <00:16:28.954>selection.

303
00:16:31.995 --> 00:16:35.575
<00:16:31.995>Uh, <00:16:32.150>before <00:16:32.306>in <00:16:32.461>the <00:16:32.617>old <00:16:32.772>switch, <00:16:32.928>it <00:16:33.083>was <00:16:33.239>not <00:16:33.395>possible

304
00:16:35.635 --> 00:16:37.695
<00:16:35.635>to <00:16:36.101>match <00:16:36.568>by <00:16:37.035>type.

305
00:16:38.315 --> 00:16:41.255
<00:16:38.315>It <00:16:38.515>was <00:16:38.715>only <00:16:38.915>possible <00:16:39.115>to <00:16:39.315>match <00:16:39.515>cases, <00:16:39.715>uh,

306
00:16:41.255 --> 00:16:43.175
<00:16:41.255>using <00:16:41.721>constant <00:16:42.188>values, <00:16:42.655>right?

307
00:16:43.235 --> 00:16:47.055
<00:16:43.235>So <00:16:43.410>every <00:16:43.585>every <00:16:43.760>case <00:16:43.935>needed <00:16:44.110>to <00:16:44.285>be, <00:16:44.460>uh, <00:16:44.635>needed

308
00:16:47.055 --> 00:16:50.535
<00:16:47.055>to <00:16:47.182>be <00:16:47.309>a <00:16:47.436>constant <00:16:47.564>or, <00:16:47.691>or <00:16:47.818>an <00:16:47.945>enum <00:16:48.073>or <00:16:48.200>a <00:16:48.327>final <00:16:48.454>variable.

309
00:16:51.275 --> 00:16:53.855
<00:16:51.275>Uh, <00:16:51.508>basically <00:16:51.741>what <00:16:51.975>you <00:16:52.208>can <00:16:52.441>do <00:16:52.675>now

310
00:16:53.855 --> 00:16:57.335
<00:16:53.855>with <00:16:53.995>the <00:16:54.135>this <00:16:54.275>enhancements <00:16:54.415>in <00:16:54.555>switch <00:16:54.695>is <00:16:54.835>that <00:16:54.975>you <00:16:55.115>can <00:16:55.255>also

311
00:16:58.365 --> 00:16:59.665
<00:16:58.365>switch <00:16:58.657>based <00:16:58.950>on <00:16:59.242>the <00:16:59.535>type,

312
00:17:00.405 --> 00:17:02.745
<00:17:00.405>and <00:17:00.605>not <00:17:00.805>only <00:17:01.005>that, <00:17:01.204>you <00:17:01.405>can <00:17:01.605>add, <00:17:01.805>uh,

313
00:17:03.095 --> 00:17:05.225
<00:17:03.095>different <00:17:03.328>bullion <00:17:03.561>checks <00:17:03.795>to <00:17:04.028>it <00:17:04.261>as <00:17:04.495>well.

314
00:17:05.335 --> 00:17:06.745
<00:17:05.335>Like <00:17:05.546>in <00:17:05.758>this <00:17:05.969>example, <00:17:06.181>we <00:17:06.392>are <00:17:06.603>checking

315
00:17:06.745 --> 00:17:07.785
<00:17:06.744>the <00:17:06.979>length <00:17:07.213>on <00:17:07.447>the <00:17:07.681>string.

316
00:17:08.645 --> 00:17:11.385
<00:17:08.645>Um, <00:17:08.819>let's <00:17:08.994>do <00:17:09.170>a <00:17:09.345>demo <00:17:09.520>for <00:17:09.694>that <00:17:09.869>as <00:17:10.045>well.

317
00:17:13.805 --> 00:17:16.745
<00:17:13.805>So <00:17:14.005>let's <00:17:14.205>say <00:17:14.405>that <00:17:14.605>we <00:17:14.805>use <00:17:15.005>this <00:17:15.205>example

318
00:17:17.205 --> 00:17:21.315
<00:17:17.204>and <00:17:17.438>we <00:17:17.671>wanna <00:17:17.905>first <00:17:18.138>create <00:17:18.371>a <00:17:18.605>class

319
00:17:21.475 --> 00:17:23.115
<00:17:21.474>patterns <00:17:22.175>in <00:17:22.875>switch.

320
00:17:25.925 --> 00:17:28.585
<00:17:25.925>And <00:17:26.065>let's <00:17:26.204>say <00:17:26.345>that <00:17:26.484>we <00:17:26.625>wanna <00:17:26.764>parse <00:17:26.905>the <00:17:27.044>double <00:17:27.185>vol <00:17:27.325>value.

321
00:17:29.165 --> 00:17:31.825
<00:17:29.165>Um, <00:17:29.365>we'll <00:17:29.565>use <00:17:29.764>a <00:17:29.965>string <00:17:30.165>in <00:17:30.365>this <00:17:30.565>example

322
00:17:34.805 --> 00:17:38.825
<00:17:34.805>and <00:17:34.945>say <00:17:35.085>that <00:17:35.225>we <00:17:35.365>wanna <00:17:35.505>parse <00:17:35.645>number <00:17:35.785>12 <00:17:35.925>to <00:17:36.065>double, <00:17:36.205>um,

323
00:17:39.035 --> 00:17:42.125
<00:17:39.035>let's <00:17:39.385>create <00:17:39.735>a <00:17:40.085>double <00:17:40.435>number

324
00:17:42.705 --> 00:17:47.125
<00:17:42.705>and <00:17:42.860>call <00:17:43.016>a <00:17:43.171>switch, <00:17:43.327>sorry, <00:17:43.482>we'll <00:17:43.638>make <00:17:43.793>this <00:17:43.949>an <00:17:44.105>object,

325
00:17:47.125 --> 00:17:51.205
<00:17:47.125>another <00:17:47.265>string, <00:17:47.405>because <00:17:47.545>we <00:17:47.685>want <00:17:47.825>to, <00:17:47.965>to <00:17:48.105>ch <00:17:48.245>we <00:17:48.385>wanna, <00:17:48.525>uh,

326
00:17:51.395 --> 00:17:54.365
<00:17:51.395>demo <00:17:51.570>the <00:17:51.745>switch, <00:17:51.920>uh, <00:17:52.095>using <00:17:52.270>the <00:17:52.445>type <00:17:52.620>type <00:17:52.795>pattern.

327
00:17:54.745 --> 00:17:59.735
<00:17:54.745>So <00:17:54.978>we <00:17:55.211>will <00:17:55.445>call <00:17:55.678>this <00:17:55.911>object <00:17:56.145>instead

328
00:18:00.905 --> 00:18:02.325
<00:18:00.905>and <00:18:01.160>switch <00:18:01.416>based <00:18:01.671>on <00:18:01.927>the <00:18:02.183>object.

329
00:18:03.305 --> 00:18:07.565
<00:18:03.305>And <00:18:03.432>now <00:18:03.559>in <00:18:03.686>our <00:18:03.814>cases, <00:18:03.941>we <00:18:04.068>will <00:18:04.195>actually <00:18:04.323>use <00:18:04.450>the <00:18:04.577>type <00:18:04.705>patterns

330
00:18:07.665 --> 00:18:09.045
<00:18:07.665>and <00:18:07.913>we <00:18:08.161>will <00:18:08.410>match <00:18:08.658>by <00:18:08.907>type.

331
00:18:09.345 --> 00:18:12.875
<00:18:09.345>We <00:18:09.520>will, <00:18:09.695>let's <00:18:09.870>maybe <00:18:10.045>just <00:18:10.220>create <00:18:10.395>a <00:18:10.570>default <00:18:10.745>case.

332
00:18:14.175 --> 00:18:16.395
<00:18:14.175>Um, <00:18:14.408>and <00:18:14.641>I <00:18:14.875>won't <00:18:15.108>throw <00:18:15.341>an <00:18:15.575>exception.

333
00:18:16.475 --> 00:18:20.235
<00:18:16.475>I <00:18:16.630>will <00:18:16.786>just <00:18:16.941>return, <00:18:17.097>uh, <00:18:17.252>zero <00:18:17.408>in <00:18:17.563>the <00:18:17.719>default <00:18:17.875>case.

334
00:18:20.295 --> 00:18:22.595
<00:18:20.295>But <00:18:20.450>I <00:18:20.606>want <00:18:20.761>to <00:18:20.917>add <00:18:21.072>a <00:18:21.228>specific <00:18:21.383>case <00:18:21.539>for <00:18:21.695>string.

335
00:18:23.535 --> 00:18:25.795
<00:18:23.535>And <00:18:23.885>I <00:18:24.235>want <00:18:24.585>to, <00:18:24.935>um,

336
00:18:26.575 --> 00:18:30.225
<00:18:26.575>define <00:18:26.808>a <00:18:27.041>variable <00:18:27.275>s <00:18:27.508>for <00:18:27.741>this <00:18:27.975>case.

337
00:18:31.165 --> 00:18:35.465
<00:18:31.165>And <00:18:31.320>let's <00:18:31.476>say <00:18:31.631>that <00:18:31.787>we <00:18:31.942>wanna <00:18:32.098>parse <00:18:32.253>it <00:18:32.409>to <00:18:32.565>double,

338
00:18:35.765 --> 00:18:39.305
<00:18:35.765>if <00:18:36.045>it's <00:18:36.325>a <00:18:36.605>string, <00:18:36.885>of <00:18:37.165>course,

339
00:18:39.925 --> 00:18:42.265
<00:18:39.925>we <00:18:40.158>can <00:18:40.391>again <00:18:40.625>print <00:18:40.858>out <00:18:41.091>the <00:18:41.325>result

340
00:18:43.765 --> 00:18:45.945
<00:18:43.765>and <00:18:43.965>the <00:18:44.165>number <00:18:44.365>should <00:18:44.565>be, <00:18:44.765>should <00:18:44.965>be <00:18:45.165>12.

341
00:18:47.025 --> 00:18:50.505
<00:18:47.025>Let's <00:18:47.180>just <00:18:47.336>try <00:18:47.491>to <00:18:47.647>run <00:18:47.802>it. <00:18:47.958>It <00:18:48.113>works <00:18:48.269>as <00:18:48.425>expected.

342
00:18:51.125 --> 00:18:53.785
<00:18:51.125>Um, <00:18:51.325>but <00:18:51.525>what <00:18:51.725>would <00:18:51.925>happen <00:18:52.125>if, <00:18:52.325>if <00:18:52.525>the,

343
00:18:54.875 --> 00:18:57.775
<00:18:54.875>if <00:18:55.030>we <00:18:55.186>send <00:18:55.341>an <00:18:55.497>empty, <00:18:55.652>empty <00:18:55.808>string, <00:18:55.963>for <00:18:56.119>example, <00:18:56.275>um,

344
00:18:59.125 --> 00:19:01.145
<00:18:59.125>so <00:18:59.300>it <00:18:59.475>would, <00:18:59.650>it <00:18:59.825>would, <00:19:00.000>it <00:19:00.175>would <00:19:00.350>fail, <00:19:00.525>right?

345
00:19:01.145 --> 00:19:02.345
<00:19:01.145>Because <00:19:01.415>it <00:19:01.685>cannot <00:19:01.955>parse <00:19:02.225>it.

346
00:19:02.345 --> 00:19:05.225
<00:19:02.345>So <00:19:02.485>what <00:19:02.625>we <00:19:02.765>can <00:19:02.905>do <00:19:03.045>in <00:19:03.185>addition <00:19:03.325>is <00:19:03.465>we <00:19:03.605>can <00:19:03.745>add

347
00:19:05.225 --> 00:19:06.745
<00:19:05.225>additional <00:19:05.567>conditions <00:19:05.908>to <00:19:06.251>the <00:19:06.592>case.

348
00:19:06.765 --> 00:19:09.465
<00:19:06.765>So <00:19:06.920>we <00:19:07.076>can <00:19:07.231>say, <00:19:07.387>we <00:19:07.542>now <00:19:07.698>have <00:19:07.853>this <00:19:08.009>variable <00:19:08.165>s

349
00:19:09.645 --> 00:19:12.865
<00:19:09.645>and <00:19:09.800>we <00:19:09.956>can <00:19:10.111>say <00:19:10.267>that <00:19:10.422>string <00:19:10.578>shouldn't <00:19:10.733>be <00:19:10.889>empty, <00:19:11.045>right?

350
00:19:12.965 --> 00:19:16.585
<00:19:12.965>And <00:19:13.105>now <00:19:13.245>when <00:19:13.385>we <00:19:13.524>re <00:19:13.665>rerun <00:19:13.804>this, <00:19:13.945>um, <00:19:14.084>we <00:19:14.225>will <00:19:14.365>see

351
00:19:16.585 --> 00:19:18.465
<00:19:16.585>that <00:19:16.760>we <00:19:16.935>actually <00:19:17.110>ended <00:19:17.285>up <00:19:17.460>in <00:19:17.635>the <00:19:17.810>default <00:19:17.985>case

352
00:19:18.465 --> 00:19:22.345
<00:19:18.465>because <00:19:18.605>we <00:19:18.745>have <00:19:18.885>this <00:19:19.024>additional <00:19:19.165>check <00:19:19.304>in <00:19:19.445>our, <00:19:19.584>in <00:19:19.725>our <00:19:19.865>case.

353
00:19:23.125 --> 00:19:27.945
<00:19:23.125>So <00:19:23.280>another <00:19:23.436>very, <00:19:23.591>very <00:19:23.747>handy <00:19:23.902>thing, <00:19:24.058>uh, <00:19:24.213>that's <00:19:24.369>been <00:19:24.525>added

354
00:19:28.205 --> 00:19:30.945
<00:19:28.205>to <00:19:28.379>the <00:19:28.554>switch <00:19:28.730>statements <00:19:28.905>that <00:19:29.080>will <00:19:29.254>make <00:19:29.429>it, <00:19:29.605>uh,

355
00:19:31.375 --> 00:19:33.345
<00:19:31.375>much <00:19:31.608>more <00:19:31.841>useful <00:19:32.075>than <00:19:32.308>it <00:19:32.541>was <00:19:32.775>before.

356
00:19:40.695 --> 00:19:44.625
<00:19:40.695>Okay? <00:19:40.928>So, <00:19:41.161>um, <00:19:41.395>feature <00:19:41.628>number <00:19:41.861>five, <00:19:42.095>um,

357
00:19:45.015 --> 00:19:46.345
<00:19:45.015>that <00:19:45.254>we'll <00:19:45.493>show <00:19:45.733>today <00:19:45.972>is <00:19:46.212>records.

358
00:19:47.445 --> 00:19:51.385
<00:19:47.445>And, <00:19:47.585>um, <00:19:47.725>records <00:19:47.865>is <00:19:48.004>record <00:19:48.145>is <00:19:48.284>basically <00:19:48.425>a <00:19:48.564>new <00:19:48.705>keyword <00:19:48.845>in,

359
00:19:51.385 --> 00:19:54.225
<00:19:51.385>in <00:19:51.560>Java <00:19:51.735>that <00:19:51.910>will <00:19:52.085>help <00:19:52.260>us <00:19:52.435>eliminate <00:19:52.610>a <00:19:52.785>lot

360
00:19:54.225 --> 00:19:55.625
<00:19:54.225>of <00:19:54.645>boiler <00:19:55.065>bread <00:19:55.485>code.

361
00:19:56.615 --> 00:20:00.275
<00:19:56.615>Um, <00:19:56.755>for <00:19:56.895>example, <00:19:57.035>we <00:19:57.175>create <00:19:57.315>a <00:19:57.455>lot <00:19:57.595>of <00:19:57.735>DTO <00:19:57.875>classes <00:19:58.015>in,

362
00:20:00.375 --> 00:20:04.155
<00:20:00.375>in <00:20:00.530>basically <00:20:00.686>every <00:20:00.841>Java <00:20:00.997>project, <00:20:01.152>um, <00:20:01.308>which <00:20:01.463>is <00:20:01.619>a <00:20:01.775>class

363
00:20:04.225 --> 00:20:05.875
<00:20:04.225>with <00:20:04.691>simple <00:20:05.158>pojo <00:20:05.625>class,

364
00:20:05.875 --> 00:20:07.915
<00:20:05.875>with <00:20:06.108>just <00:20:06.341>a <00:20:06.575>constructor <00:20:06.808>and <00:20:07.041>some <00:20:07.275>getters.

365
00:20:08.535 --> 00:20:11.515
<00:20:08.535>Uh, <00:20:08.690>and <00:20:08.846>we <00:20:09.001>can <00:20:09.157>do <00:20:09.312>this <00:20:09.468>now <00:20:09.623>with, <00:20:09.779>uh, <00:20:09.935>records,

366
00:20:11.685 --> 00:20:13.835
<00:20:11.685>which <00:20:11.918>will <00:20:12.151>auto-generate <00:20:12.385>this <00:20:12.618>code <00:20:12.851>for <00:20:13.085>us,

367
00:20:14.055 --> 00:20:15.995
<00:20:14.055>and <00:20:14.405>we <00:20:14.755>can, <00:20:15.105>of <00:20:15.455>course,

368
00:20:16.195 --> 00:20:18.835
<00:20:16.195>override <00:20:16.544>the <00:20:16.895>default <00:20:17.245>auto-generated <00:20:17.595>methods.

369
00:20:19.695 --> 00:20:24.405
<00:20:19.695>Um, <00:20:19.928>let's <00:20:20.161>do <00:20:20.395>an <00:20:20.628>example <00:20:20.861>for <00:20:21.095>records.

370
00:20:24.595 --> 00:20:26.605
<00:20:24.595>Well, <00:20:24.795>so <00:20:24.995>I'm <00:20:25.195>gonna <00:20:25.395>create <00:20:25.595>a <00:20:25.795>new <00:20:25.995>class.

371
00:20:26.705 --> 00:20:27.805
<00:20:26.705>I'm <00:20:27.034>gonna <00:20:27.365>select <00:20:27.695>record,

372
00:20:29.465 --> 00:20:33.145
<00:20:29.465>and <00:20:29.698>I'm <00:20:29.931>gonna <00:20:30.165>call <00:20:30.398>it <00:20:30.631>car <00:20:30.865>record.

373
00:20:35.715 --> 00:20:38.135
<00:20:35.715>So <00:20:35.842>you <00:20:35.969>can <00:20:36.096>see <00:20:36.224>that <00:20:36.351>the <00:20:36.478>keyword <00:20:36.605>is <00:20:36.733>not <00:20:36.860>class, <00:20:36.987>it's <00:20:37.115>record.

374
00:20:39.235 --> 00:20:41.375
<00:20:39.235>Uh, <00:20:39.409>and <00:20:39.584>what <00:20:39.760>I <00:20:39.935>can <00:20:40.110>define <00:20:40.284>is <00:20:40.459>a <00:20:40.635>couple

375
00:20:41.375 --> 00:20:42.615
<00:20:41.375>of <00:20:41.654>properties <00:20:41.933>for <00:20:42.212>the <00:20:42.491>car.

376
00:20:42.745 --> 00:20:45.015
<00:20:42.745>Let's <00:20:42.945>say <00:20:43.145>a <00:20:43.344>car <00:20:43.544>has <00:20:43.745>a <00:20:43.945>registration <00:20:44.145>number

377
00:20:45.355 --> 00:20:48.845
<00:20:45.355>and <00:20:45.555>maybe <00:20:45.755>a <00:20:45.955>model, <00:20:46.155>and <00:20:46.355>we'll <00:20:46.555>stop <00:20:46.755>there.

378
00:20:49.945 --> 00:20:51.925
<00:20:49.945>Uh, <00:20:50.225>and <00:20:50.504>then <00:20:50.784>let's <00:20:51.064>just <00:20:51.345>show

379
00:20:52.395 --> 00:20:56.805
<00:20:52.395>that <00:20:52.550>the <00:20:52.706>also <00:20:52.861>generated <00:20:53.017>methods <00:20:53.172>work, <00:20:53.328>uh, <00:20:53.483>work <00:20:53.639>as <00:20:53.795>expected.

380
00:20:57.345 --> 00:21:00.445
<00:20:57.345>So <00:20:57.811>call <00:20:58.278>record <00:20:58.745>sample.

381
00:21:01.745 --> 00:21:04.365
<00:21:01.745>Um, <00:21:01.919>I'm <00:21:02.094>just <00:21:02.270>gonna <00:21:02.445>create <00:21:02.620>a <00:21:02.794>main <00:21:02.969>method <00:21:03.145>again,

382
00:21:04.585 --> 00:21:07.325
<00:21:04.585>and <00:21:04.740>I <00:21:04.896>just <00:21:05.051>wanna <00:21:05.207>show <00:21:05.362>you <00:21:05.518>that <00:21:05.673>this <00:21:05.829>car <00:21:05.985>record

383
00:21:07.355 --> 00:21:11.675
<00:21:07.355>that <00:21:07.555>we <00:21:07.755>just <00:21:07.955>created <00:21:08.155>can <00:21:08.355>be <00:21:08.555>created <00:21:08.755>using,

384
00:21:12.175 --> 00:21:13.795
<00:21:12.175>uh, <00:21:12.524>not <00:21:12.875>a <00:21:13.225>default <00:21:13.575>constructor,

385
00:21:13.985 --> 00:21:16.635
<00:21:13.985>because <00:21:14.140>you <00:21:14.296>see <00:21:14.451>here, <00:21:14.607>if <00:21:14.762>I <00:21:14.918>use <00:21:15.073>the <00:21:15.229>default <00:21:15.385>constructor,

386
00:21:16.715 --> 00:21:17.715
<00:21:16.715>I <00:21:16.939>get <00:21:17.165>a <00:21:17.389>compile <00:21:17.615>error.

387
00:21:18.215 --> 00:21:20.035
<00:21:18.215>But <00:21:18.415>if <00:21:18.615>I <00:21:18.814>pass <00:21:19.014>down <00:21:19.215>the <00:21:19.415>required <00:21:19.615>parameters,

388
00:21:20.035 --> 00:21:22.515
<00:21:20.035>the <00:21:20.268>first <00:21:20.501>one <00:21:20.735>is <00:21:20.968>registration <00:21:21.201>number, <00:21:21.435>so

389
00:21:27.115 --> 00:21:28.255
<00:21:27.115>I'm <00:21:27.457>gonna <00:21:27.799>use <00:21:28.141>mine

390
00:21:28.515 --> 00:21:33.225
<00:21:28.515>and <00:21:28.690>I'm <00:21:28.865>driving, <00:21:29.040>so <00:21:29.215>I'm <00:21:29.390>gonna <00:21:29.565>use <00:21:29.740>that <00:21:29.915>one.

391
00:21:33.885 --> 00:21:37.725
<00:21:33.885>And <00:21:34.118>let's <00:21:34.351>also <00:21:34.585>show <00:21:34.818>that <00:21:35.051>the, <00:21:35.285>um,

392
00:21:38.475 --> 00:21:40.965
<00:21:38.475>getters <00:21:38.824>were <00:21:39.175>autogenerated <00:21:39.524>using <00:21:39.875>records.

393
00:21:41.265 --> 00:21:43.365
<00:21:41.265>So <00:21:41.392>you <00:21:41.519>can <00:21:41.646>see <00:21:41.774>that <00:21:41.901>we <00:21:42.028>have <00:21:42.155>out <00:21:42.283>of <00:21:42.410>the <00:21:42.537>box <00:21:42.665>methods

394
00:21:43.505 --> 00:21:44.565
<00:21:43.505>for <00:21:43.982>registration <00:21:44.459>number,

395
00:21:45.545 --> 00:21:50.205
<00:21:45.545>and <00:21:45.661>we <00:21:45.778>also <00:21:45.895>have <00:21:46.011>an <00:21:46.128>out <00:21:46.245>of <00:21:46.361>the <00:21:46.478>box, <00:21:46.595>um, <00:21:46.711>method <00:21:46.828>for <00:21:46.945>model.

396
00:21:51.055 --> 00:21:52.635
<00:21:51.055>So <00:21:51.255>we <00:21:51.455>can <00:21:51.655>print <00:21:51.855>both <00:21:52.055>of <00:21:52.255>these <00:21:52.455>out.

397
00:21:53.255 --> 00:21:56.315
<00:21:53.255>We <00:21:53.410>can <00:21:53.566>run <00:21:53.721>our <00:21:53.877>code <00:21:54.032>and <00:21:54.188>see <00:21:54.343>that <00:21:54.499>it <00:21:54.655>compiles

398
00:21:56.455 --> 00:21:58.555
<00:21:56.455>and <00:21:56.688>prints <00:21:56.921>exactly <00:21:57.155>what <00:21:57.388>we <00:21:57.621>would <00:21:57.855>expect.

399
00:21:59.935 --> 00:22:01.955
<00:21:59.935>Uh, <00:22:00.168>and <00:22:00.401>this <00:22:00.635>is <00:22:00.868>everything <00:22:01.101>about <00:22:01.335>records.

400
00:22:02.055 --> 00:22:03.555
<00:22:02.055>So <00:22:02.280>it's <00:22:02.505>a, <00:22:02.730>it's <00:22:02.955>a <00:22:03.180>very <00:22:03.405>simple

401
00:22:03.615 --> 00:22:08.595
<00:22:03.615>and <00:22:03.731>handy <00:22:03.848>thing <00:22:03.965>that's <00:22:04.081>gonna <00:22:04.198>help <00:22:04.315>us <00:22:04.431>get <00:22:04.548>rid <00:22:04.665>of, <00:22:04.781>um, <00:22:04.898>a <00:22:05.015>lot

402
00:22:08.595 --> 00:22:10.115
<00:22:08.595>of <00:22:09.051>bullet <00:22:09.507>plate <00:22:09.963>code.

403
00:22:10.335 --> 00:22:13.195
<00:22:10.335>Um, <00:22:10.510>so <00:22:10.685>we <00:22:10.860>don't <00:22:11.035>have <00:22:11.210>to <00:22:11.385>use <00:22:11.560>long <00:22:11.735>book

404
00:22:13.335 --> 00:22:18.155
<00:22:13.335>or <00:22:13.510>autogenerate <00:22:13.685>this <00:22:13.860>ourself, <00:22:14.035>um, <00:22:14.210>using, <00:22:14.385>um, <00:22:14.560>Intelli <00:22:14.735>J

405
00:22:18.155 --> 00:22:19.835
<00:22:18.155>or, <00:22:18.504>or <00:22:18.855>any <00:22:19.205>other <00:22:19.555>id.

406
00:22:23.575 --> 00:22:24.995
<00:22:23.575>So <00:22:23.894>those <00:22:24.214>were <00:22:24.533>records. <00:22:24.852>Um,

407
00:22:25.375 --> 00:22:28.795
<00:22:25.375>and <00:22:25.575>next <00:22:25.775>feature, <00:22:25.975>we'll <00:22:26.175>demo <00:22:26.375>our <00:22:26.575>sealed <00:22:26.775>classes.

408
00:22:29.895 --> 00:22:31.635
<00:22:29.895>Uh, <00:22:30.361>basically <00:22:30.828>sealed <00:22:31.295>classes.

409
00:22:32.215 --> 00:22:35.595
<00:22:32.215>Uh, <00:22:32.448>it, <00:22:32.681>it <00:22:32.915>sealed <00:22:33.148>keyword <00:22:33.381>actually <00:22:33.615>applies

410
00:22:35.595 --> 00:22:37.035
<00:22:35.595>to <00:22:35.919>both <00:22:36.243>classes <00:22:36.567>and <00:22:36.891>interfaces.

411
00:22:37.055 --> 00:22:39.235
<00:22:37.055>And <00:22:37.288>what, <00:22:37.521>uh, <00:22:37.755>it <00:22:37.988>enables <00:22:38.221>us <00:22:38.455>to,

412
00:22:39.335 --> 00:22:41.115
<00:22:39.335>to <00:22:39.685>have <00:22:40.035>finer <00:22:40.385>inheritance <00:22:40.735>control.

413
00:22:41.855 --> 00:22:46.175
<00:22:41.855>Uh, <00:22:41.995>so <00:22:42.135>basically <00:22:42.275>there <00:22:42.415>are <00:22:42.555>a <00:22:42.695>couple <00:22:42.835>of <00:22:42.975>new <00:22:43.115>keywords <00:22:43.255>added.

414
00:22:46.395 --> 00:22:48.535
<00:22:46.395>Uh, <00:22:46.628>one <00:22:46.861>is <00:22:47.095>sealed, <00:22:47.328>one <00:22:47.561>is <00:22:47.795>unsealed,

415
00:22:48.595 --> 00:22:50.015
<00:22:48.595>and <00:22:48.914>another <00:22:49.234>one <00:22:49.553>is <00:22:49.873>permits.

416
00:22:50.515 --> 00:22:52.455
<00:22:50.515>So <00:22:50.748>basically <00:22:50.981>you <00:22:51.215>can <00:22:51.448>define <00:22:51.681>a <00:22:51.915>class

417
00:22:52.675 --> 00:22:54.575
<00:22:52.675>or <00:22:52.955>an <00:22:53.235>interface <00:22:53.514>as <00:22:53.794>a <00:22:54.075>sealed,

418
00:22:55.255 --> 00:22:57.995
<00:22:55.255>and <00:22:55.395>then <00:22:55.535>if <00:22:55.675>you <00:22:55.815>do <00:22:55.955>that, <00:22:56.095>you <00:22:56.235>need <00:22:56.375>to <00:22:56.515>explicitly <00:22:56.655>define

419
00:22:58.175 --> 00:23:01.955
<00:22:58.175>to <00:22:58.330>which <00:22:58.486>classes <00:22:58.641>or <00:22:58.797>interfaces <00:22:58.952>you <00:22:59.108>permit, <00:22:59.263>uh, <00:22:59.419>to <00:22:59.575>extend

420
00:23:01.975 --> 00:23:04.835
<00:23:01.975>or <00:23:02.254>implement <00:23:02.534>this <00:23:02.814>class <00:23:03.094>slash <00:23:03.375>interface.

421
00:23:05.655 --> 00:23:07.515
<00:23:05.655>Um, <00:23:05.855>there's <00:23:06.055>a <00:23:06.254>couple <00:23:06.455>of <00:23:06.655>constraints <00:23:06.855>to <00:23:07.055>it.

422
00:23:07.735 --> 00:23:10.195
<00:23:07.735>So <00:23:08.084>basically <00:23:08.435>all <00:23:08.784>permitted <00:23:09.135>subclasses

423
00:23:10.195 --> 00:23:11.435
<00:23:10.195>need <00:23:10.380>to <00:23:10.567>belong <00:23:10.753>to <00:23:10.938>the <00:23:11.125>same <00:23:11.311>module.

424
00:23:12.515 --> 00:23:14.575
<00:23:12.515>Um, <00:23:12.748>every <00:23:12.981>class <00:23:13.215>that <00:23:13.448>you <00:23:13.681>permit <00:23:13.915>needs

425
00:23:14.575 --> 00:23:16.815
<00:23:14.575>to <00:23:14.855>explicitly <00:23:15.135>extend <00:23:15.415>the <00:23:15.695>seal <00:23:15.975>class,

426
00:23:16.995 --> 00:23:19.575
<00:23:16.995>so <00:23:17.228>you <00:23:17.461>cannot <00:23:17.695>have <00:23:17.928>a <00:23:18.161>class <00:23:18.395>permitted

427
00:23:19.575 --> 00:23:21.055
<00:23:19.575>that <00:23:19.908>doesn't <00:23:20.241>actually <00:23:20.574>extend <00:23:20.907>it.

428
00:23:22.195 --> 00:23:27.135
<00:23:22.195>Um, <00:23:22.335>and <00:23:22.475>every <00:23:22.615>class <00:23:22.754>that, <00:23:22.895>uh, <00:23:23.034>is <00:23:23.175>permitted <00:23:23.314>needs <00:23:23.455>to <00:23:23.595>also,

429
00:23:27.675 --> 00:23:31.215
<00:23:27.675>uh, <00:23:27.830>have <00:23:27.986>a <00:23:28.141>modifier <00:23:28.297>that, <00:23:28.452>uh, <00:23:28.608>says <00:23:28.763>if <00:23:28.919>it's <00:23:29.075>sealed

430
00:23:31.215 --> 00:23:33.375
<00:23:31.215>or <00:23:31.415>unsealed, <00:23:31.615>or <00:23:31.814>you <00:23:32.014>can <00:23:32.215>simply <00:23:32.415>use <00:23:32.615>final.

431
00:23:34.115 --> 00:23:36.495
<00:23:34.115>Um, <00:23:34.242>and <00:23:34.369>that <00:23:34.496>of <00:23:34.624>course <00:23:34.751>means <00:23:34.878>no, <00:23:35.005>no <00:23:35.133>one <00:23:35.260>else <00:23:35.387>will <00:23:35.515>be,

432
00:23:36.495 --> 00:23:38.095
<00:23:36.495>will <00:23:36.695>be <00:23:36.895>able <00:23:37.094>to, <00:23:37.294>to <00:23:37.495>inherit <00:23:37.695>from <00:23:37.895>it.

433
00:23:38.795 --> 00:23:43.175
<00:23:38.795>Um, <00:23:38.911>you <00:23:39.028>can <00:23:39.145>imagine <00:23:39.261>this <00:23:39.378>as <00:23:39.495>a, <00:23:39.611>as <00:23:39.728>an <00:23:39.845>addition <00:23:39.961>to, <00:23:40.078>to <00:23:40.195>how

434
00:23:43.175 --> 00:23:44.175
<00:23:43.175>to <00:23:43.625>control <00:23:44.075>inheritance.

435
00:23:44.175 --> 00:23:46.405
<00:23:44.175>So <00:23:44.375>previously <00:23:44.575>this <00:23:44.774>was <00:23:44.975>only <00:23:45.175>based <00:23:45.375>by, <00:23:45.575>uh,

436
00:23:46.585 --> 00:23:47.605
<00:23:46.585>the <00:23:47.044>class <00:23:47.503>visibility.

437
00:23:47.865 --> 00:23:50.125
<00:23:47.865>So <00:23:48.040>if <00:23:48.215>it <00:23:48.390>was <00:23:48.565>public, <00:23:48.740>private <00:23:48.915>or <00:23:49.090>packaged <00:23:49.265>private,

438
00:23:50.625 --> 00:23:55.245
<00:23:50.625>and <00:23:50.780>now <00:23:50.936>you <00:23:51.091>can <00:23:51.247>explicitly <00:23:51.402>say <00:23:51.558>which <00:23:51.713>classes <00:23:51.869>can, <00:23:52.025>um,

439
00:23:55.785 --> 00:23:57.885
<00:23:55.785>can <00:23:56.065>implement <00:23:56.345>your <00:23:56.625>interfaces, <00:23:56.905>for <00:23:57.185>example,

440
00:23:58.345 --> 00:23:59.525
<00:23:58.345>by <00:23:58.699>explicitly <00:23:59.053>naming <00:23:59.407>them.

441
00:23:59.585 --> 00:24:04.205
<00:23:59.585>And <00:23:59.785>thus, <00:23:59.985>uh, <00:24:00.185>basically <00:24:00.385>preventing <00:24:00.585>anyone <00:24:00.785>else <00:24:00.985>from,

442
00:24:04.745 --> 00:24:06.725
<00:24:04.745>uh, <00:24:05.211>implementing <00:24:05.678>your <00:24:06.145>interface

443
00:24:06.745 --> 00:24:10.485
<00:24:06.745>or <00:24:06.885>extending <00:24:07.024>your <00:24:07.165>class <00:24:07.304>that's <00:24:07.445>not, <00:24:07.584>that, <00:24:07.725>that <00:24:07.864>was <00:24:08.004>not <00:24:08.145>meant

444
00:24:10.485 --> 00:24:13.845
<00:24:10.485>to <00:24:10.659>be, <00:24:10.834>um, <00:24:11.010>uh, <00:24:11.185>extended <00:24:11.360>in <00:24:11.534>such <00:24:11.709>a <00:24:11.885>way

445
00:24:13.865 --> 00:24:15.725
<00:24:13.865>or <00:24:14.145>the <00:24:14.425>interface <00:24:14.705>was <00:24:14.985>not <00:24:15.265>intended

446
00:24:15.725 --> 00:24:17.085
<00:24:15.725>to <00:24:15.969>be <00:24:16.214>implemented <00:24:16.459>by <00:24:16.704>anyone <00:24:16.949>else.

447
00:24:18.225 --> 00:24:19.925
<00:24:18.225>Um, <00:24:18.504>let's <00:24:18.784>demo <00:24:19.064>this <00:24:19.344>as <00:24:19.625>well.

448
00:24:20.385 --> 00:24:23.765
<00:24:20.385>So <00:24:20.618>I <00:24:20.851>will <00:24:21.085>create <00:24:21.318>one <00:24:21.551>sealed <00:24:21.785>interface.

449
00:24:25.085 --> 00:24:26.705
<00:24:25.085>So <00:24:25.435>I'll <00:24:25.785>choose <00:24:26.135>an <00:24:26.485>interface

450
00:24:27.125 --> 00:24:31.525
<00:24:27.125>and <00:24:27.358>let's <00:24:27.591>call <00:24:27.825>this <00:24:28.058>one <00:24:28.291>person, <00:24:28.525>uh,

451
00:24:31.585 --> 00:24:32.765
<00:24:31.585>and <00:24:31.850>we'll <00:24:32.116>make <00:24:32.381>it <00:24:32.647>sealed

452
00:24:35.035 --> 00:24:37.735
<00:24:35.035>and <00:24:35.210>we <00:24:35.385>will <00:24:35.560>create <00:24:35.735>one <00:24:35.910>method, <00:24:36.085>maybe <00:24:36.260>get <00:24:36.435>name

453
00:24:37.735 --> 00:24:39.575
<00:24:37.735>because <00:24:38.014>every <00:24:38.294>person <00:24:38.574>needs <00:24:38.854>a <00:24:39.135>name.

454
00:24:40.075 --> 00:24:41.575
<00:24:40.075>And <00:24:40.267>now <00:24:40.460>you <00:24:40.653>see <00:24:40.846>I <00:24:41.039>get <00:24:41.232>an <00:24:41.425>error

455
00:24:41.575 --> 00:24:43.695
<00:24:41.575>because <00:24:41.925>there <00:24:42.275>is <00:24:42.625>no <00:24:42.975>subclasses.

456
00:24:43.695 --> 00:24:48.295
<00:24:43.695>So <00:24:43.835>I <00:24:43.975>need <00:24:44.115>to <00:24:44.254>specifically, <00:24:44.395>uh, <00:24:44.534>specify <00:24:44.675>to <00:24:44.814>whom <00:24:44.955>I <00:24:45.095>permit

457
00:24:48.395 --> 00:24:49.775
<00:24:48.395>to <00:24:48.809>extend <00:24:49.223>this <00:24:49.637>interface.

458
00:24:49.955 --> 00:24:53.215
<00:24:49.955>And <00:24:50.155>we'll <00:24:50.355>say <00:24:50.554>maybe <00:24:50.754>a <00:24:50.955>class <00:24:51.155>employee <00:24:51.355>should,

459
00:24:54.775 --> 00:24:57.515
<00:24:54.775>uh, <00:24:55.008>be <00:24:55.241>the <00:24:55.475>one <00:24:55.708>implementing <00:24:55.941>this <00:24:56.175>interface.

460
00:24:59.105 --> 00:25:02.365
<00:24:59.105>So <00:24:59.260>this <00:24:59.416>one <00:24:59.571>is <00:24:59.727>not <00:24:59.882>existing, <00:25:00.038>so <00:25:00.193>let's <00:25:00.349>create <00:25:00.505>it.

461
00:25:05.575 --> 00:25:07.235
<00:25:05.575>So <00:25:05.808>if <00:25:06.041>we <00:25:06.275>create <00:25:06.508>a <00:25:06.741>class <00:25:06.975>employee

462
00:25:07.335 --> 00:25:12.135
<00:25:07.335>and <00:25:07.490>we <00:25:07.646>say <00:25:07.801>it <00:25:07.957>implements <00:25:08.112>person, <00:25:08.268>we'll <00:25:08.423>get <00:25:08.579>some <00:25:08.735>errors.

463
00:25:12.465 --> 00:25:15.735
<00:25:12.465>First <00:25:12.605>error <00:25:12.745>is <00:25:12.885>that <00:25:13.024>we <00:25:13.165>didn't <00:25:13.304>implement <00:25:13.445>to, <00:25:13.584>to <00:25:13.725>get <00:25:13.865>name.

464
00:25:17.355 --> 00:25:21.715
<00:25:17.355>The <00:25:17.705>second <00:25:18.055>error <00:25:18.405>is, <00:25:18.755>um,

465
00:25:21.985 --> 00:25:26.195
<00:25:21.985>that <00:25:22.140>we <00:25:22.296>didn't <00:25:22.451>define <00:25:22.607>a <00:25:22.762>modifier, <00:25:22.918>so <00:25:23.073>we <00:25:23.229>explicitly <00:25:23.385>need

466
00:25:26.195 --> 00:25:27.915
<00:25:26.195>to <00:25:26.395>say <00:25:26.595>if <00:25:26.794>this <00:25:26.995>one <00:25:27.195>is <00:25:27.395>also <00:25:27.595>sealed

467
00:25:27.915 --> 00:25:29.395
<00:25:27.915>or <00:25:28.081>if <00:25:28.248>it's <00:25:28.414>non <00:25:28.581>sealed, <00:25:28.747>or <00:25:28.914>if <00:25:29.080>it's <00:25:29.247>final.

468
00:25:29.565 --> 00:25:31.475
<00:25:29.565>We'll <00:25:29.765>just <00:25:29.965>simply <00:25:30.165>make <00:25:30.365>this, <00:25:30.565>make <00:25:30.765>it <00:25:30.965>final.

469
00:25:31.855 --> 00:25:36.235
<00:25:31.855>Uh, <00:25:31.982>and <00:25:32.109>you <00:25:32.236>can <00:25:32.364>see <00:25:32.491>that <00:25:32.618>all <00:25:32.745>the <00:25:32.873>errors <00:25:33.000>are <00:25:33.127>now <00:25:33.255>gone.

470
00:25:37.185 --> 00:25:39.325
<00:25:37.185>Uh, <00:25:37.360>and <00:25:37.534>you <00:25:37.710>can <00:25:37.885>see <00:25:38.060>that <00:25:38.235>our <00:25:38.409>person <00:25:38.585>interface

471
00:25:39.435 --> 00:25:40.685
<00:25:39.435>also <00:25:39.997>compiles <00:25:40.560>fine.

472
00:25:40.945 --> 00:25:45.645
<00:25:40.945>Now, <00:25:41.120>uh, <00:25:41.294>if <00:25:41.470>we <00:25:41.645>try <00:25:41.820>to <00:25:41.995>implement <00:25:42.169>this <00:25:42.345>interface

473
00:25:45.665 --> 00:25:48.645
<00:25:45.665>by <00:25:46.014>another <00:25:46.365>class, <00:25:46.715>maybe <00:25:47.065>employer,

474
00:25:52.505 --> 00:25:54.525
<00:25:52.505>so <00:25:52.971>let's <00:25:53.438>do <00:25:53.905>everything.

475
00:25:55.015 --> 00:25:58.965
<00:25:55.015>Let's <00:25:55.215>implement <00:25:55.415>the <00:25:55.615>method, <00:25:55.815>let's <00:25:56.015>make <00:25:56.215>it <00:25:56.415>final.

476
00:25:59.265 --> 00:26:00.405
<00:25:59.265>So <00:25:59.521>we <00:25:59.778>did <00:26:00.034>everything <00:26:00.291>right.

477
00:26:02.065 --> 00:26:04.165
<00:26:02.065>Uh, <00:26:02.345>but <00:26:02.625>Java <00:26:02.905>won't <00:26:03.185>allow <00:26:03.465>us,

478
00:26:04.165 --> 00:26:06.445
<00:26:04.165>because <00:26:04.320>you <00:26:04.476>will <00:26:04.631>get <00:26:04.787>an, <00:26:04.942>we <00:26:05.098>will <00:26:05.253>get <00:26:05.409>an <00:26:05.565>error

479
00:26:06.445 --> 00:26:08.725
<00:26:06.445>that <00:26:06.600>the <00:26:06.756>employer <00:26:06.911>is <00:26:07.067>not <00:26:07.222>allowed <00:26:07.378>in <00:26:07.533>the <00:26:07.689>sealed <00:26:07.845>car.

480
00:26:09.065 --> 00:26:12.725
<00:26:09.065>So <00:26:09.181>this <00:26:09.298>is <00:26:09.415>a <00:26:09.531>new <00:26:09.648>way <00:26:09.765>how <00:26:09.881>you <00:26:09.998>can <00:26:10.115>limit, <00:26:10.231>um, <00:26:10.348>who <00:26:10.465>inherits

481
00:26:12.755 --> 00:26:16.085
<00:26:12.755>what, <00:26:12.895>uh, <00:26:13.035>in <00:26:13.175>Java <00:26:13.315>for <00:26:13.455>the <00:26:13.595>code <00:26:13.735>that <00:26:13.875>that <00:26:14.015>you <00:26:14.155>write

482
00:26:16.085 --> 00:26:17.285
<00:26:16.085>for <00:26:16.301>the <00:26:16.517>APIs <00:26:16.733>that <00:26:16.949>you <00:26:17.165>write.

483
00:26:20.505 --> 00:26:23.035
<00:26:20.505>Feature <00:26:20.855>number <00:26:21.205>seven, <00:26:21.555>uh, <00:26:21.905>is

484
00:26:23.295 --> 00:26:25.355
<00:26:23.295>how <00:26:23.528>we <00:26:23.761>collect <00:26:23.995>streams <00:26:24.228>into <00:26:24.461>a <00:26:24.695>list.

485
00:26:25.465 --> 00:26:27.235
<00:26:25.465>This <00:26:25.698>is <00:26:25.931>something <00:26:26.165>I <00:26:26.398>believe <00:26:26.631>a <00:26:26.865>lot

486
00:26:27.235 --> 00:26:29.315
<00:26:27.235>of <00:26:27.435>you <00:26:27.635>do <00:26:27.834>on, <00:26:28.034>on <00:26:28.235>a <00:26:28.435>daily <00:26:28.635>basis.

487
00:26:29.545 --> 00:26:30.595
<00:26:29.545>It's <00:26:29.781>not <00:26:30.017>a <00:26:30.253>big <00:26:30.490>change.

488
00:26:31.165 --> 00:26:35.235
<00:26:31.165>There <00:26:31.305>is <00:26:31.445>just <00:26:31.585>a <00:26:31.725>new <00:26:31.865>handy <00:26:32.004>method <00:26:32.145>that's <00:26:32.284>called <00:26:32.425>to <00:26:32.565>list

489
00:26:35.335 --> 00:26:37.475
<00:26:35.335>that's <00:26:35.568>been <00:26:35.801>added <00:26:36.035>to <00:26:36.268>the <00:26:36.501>stream <00:26:36.735>API.

490
00:26:37.695 --> 00:26:40.395
<00:26:37.695>So <00:26:37.835>before <00:26:37.975>you <00:26:38.115>had <00:26:38.254>to <00:26:38.395>explicitly <00:26:38.534>call <00:26:38.675>the <00:26:38.814>collector <00:26:38.955>to <00:26:39.095>list.

491
00:26:41.365 --> 00:26:44.765
<00:26:41.365>And <00:26:41.492>now <00:26:41.619>you <00:26:41.746>can <00:26:41.874>simply <00:26:42.001>call <00:26:42.128>stream <00:26:42.255>tool <00:26:42.383>list, <00:26:42.510>which <00:26:42.637>is <00:26:42.765>just,

492
00:26:44.825 --> 00:26:48.045
<00:26:44.825>uh, <00:26:45.000>nice <00:26:45.175>and <00:26:45.350>reduces <00:26:45.525>the <00:26:45.700>usage <00:26:45.875>of <00:26:46.050>the <00:26:46.225>collector's,

493
00:26:48.045 --> 00:26:50.965
<00:26:48.045>API <00:26:48.278>all <00:26:48.511>over, <00:26:48.745>um, <00:26:48.978>our <00:26:49.211>code <00:26:49.445>base.

494
00:26:51.415 --> 00:26:53.805
<00:26:51.415>There <00:26:51.695>is <00:26:51.975>one <00:26:52.254>little <00:26:52.534>difference, <00:26:52.815>uh,

495
00:26:53.805 --> 00:26:56.565
<00:26:53.805>that <00:26:54.038>the <00:26:54.271>tool <00:26:54.505>list <00:26:54.738>method <00:26:54.971>actually, <00:26:55.205>um,

496
00:26:56.955 --> 00:26:59.605
<00:26:56.955>also <00:26:57.155>returns <00:26:57.355>an <00:26:57.554>immutable <00:26:57.754>list <00:26:57.955>that <00:26:58.155>only <00:26:58.355>differences

497
00:26:59.635 --> 00:27:02.925
<00:26:59.635>that <00:26:59.810>this <00:26:59.985>list <00:27:00.160>may <00:27:00.335>contain <00:27:00.510>null <00:27:00.685>values <00:27:00.860>based <00:27:01.035>on

498
00:27:02.925 --> 00:27:05.645
<00:27:02.925>what <00:27:03.100>will <00:27:03.274>be <00:27:03.450>result <00:27:03.625>of <00:27:03.800>your, <00:27:03.975>of <00:27:04.149>your <00:27:04.325>stream.

499
00:27:06.345 --> 00:27:09.685
<00:27:06.345>Um, <00:27:06.500>again, <00:27:06.656>we <00:27:06.811>can <00:27:06.967>quickly <00:27:07.122>demo <00:27:07.278>this <00:27:07.433>one <00:27:07.589>as <00:27:07.745>well.

500
00:27:10.145 --> 00:27:12.325
<00:27:10.145>Um, <00:27:10.611>stream <00:27:11.078>to <00:27:11.545>list,

501
00:27:14.555 --> 00:27:15.865
<00:27:14.555>let's <00:27:14.849>create <00:27:15.144>a <00:27:15.439>main <00:27:15.734>method.

502
00:27:16.235 --> 00:27:19.295
<00:27:16.235>Let's <00:27:16.701>create <00:27:17.168>a <00:27:17.635>stream

503
00:27:21.195 --> 00:27:24.655
<00:27:21.195>of, <00:27:21.370>uh, <00:27:21.544>maybe <00:27:21.720>just <00:27:21.895>use <00:27:22.070>a <00:27:22.245>couple <00:27:22.419>of <00:27:22.595>names

504
00:27:28.245 --> 00:27:31.425
<00:27:28.245>and <00:27:28.478>let's <00:27:28.711>map <00:27:28.945>this <00:27:29.178>to <00:27:29.411>maybe <00:27:29.645>string

505
00:27:32.665 --> 00:27:36.355
<00:27:32.665>uppercase, <00:27:32.820>and <00:27:32.976>let's <00:27:33.131>just <00:27:33.287>call <00:27:33.442>the <00:27:33.598>new <00:27:33.753>tool <00:27:33.909>list <00:27:34.065>method.

506
00:27:37.295 --> 00:27:41.715
<00:27:37.295>And <00:27:37.435>of <00:27:37.575>course, <00:27:37.715>we <00:27:37.855>are <00:27:37.995>expecting <00:27:38.135>this <00:27:38.275>to <00:27:38.415>return <00:27:38.555>a <00:27:38.695>list

507
00:27:42.895 --> 00:27:47.465
<00:27:42.895>string, <00:27:43.361>and <00:27:43.828>we <00:27:44.295>can

508
00:27:47.465 --> 00:27:49.185
<00:27:47.465>of <00:27:47.698>course <00:27:47.931>print <00:27:48.165>it <00:27:48.398>out <00:27:48.631>as <00:27:48.865>always.

509
00:27:51.695 --> 00:27:53.635
<00:27:51.695>And <00:27:51.928>we <00:27:52.161>expect <00:27:52.395>to <00:27:52.628>get <00:27:52.861>a <00:27:53.095>list

510
00:27:53.655 --> 00:27:56.035
<00:27:53.655>of <00:27:53.855>all <00:27:54.055>the <00:27:54.254>uppercase <00:27:54.455>names <00:27:54.655>in <00:27:54.855>this <00:27:55.055>stream.

511
00:27:57.555 --> 00:28:00.975
<00:27:57.555>Uh, <00:27:57.695>but <00:27:57.835>we <00:27:57.975>need <00:27:58.115>to <00:27:58.255>get <00:27:58.395>rid <00:27:58.535>of <00:27:58.675>this <00:27:58.815>employer <00:27:58.955>class

512
00:28:01.005 --> 00:28:02.175
<00:28:01.005>that <00:28:01.531>doesn't <00:28:02.058>compile.

513
00:28:03.305 --> 00:28:04.885
<00:28:03.305>So <00:28:03.655>let's <00:28:04.005>delete <00:28:04.355>that <00:28:04.705>one.

514
00:28:06.545 --> 00:28:07.725
<00:28:06.545>Run <00:28:06.899>our <00:28:07.253>code <00:28:07.607>again,

515
00:28:10.155 --> 00:28:12.335
<00:28:10.155>and <00:28:10.355>we <00:28:10.555>get <00:28:10.754>exactly <00:28:10.955>what, <00:28:11.155>what <00:28:11.355>we <00:28:11.555>expected.

516
00:28:12.515 --> 00:28:14.935
<00:28:12.515>So <00:28:12.715>a <00:28:12.915>list <00:28:13.115>of <00:28:13.315>all <00:28:13.515>those <00:28:13.715>names <00:28:13.915>uppercase.

517
00:28:15.755 --> 00:28:19.375
<00:28:15.755>So <00:28:15.930>a <00:28:16.105>small <00:28:16.280>enhancement <00:28:16.455>that's <00:28:16.630>gonna <00:28:16.805>come <00:28:16.980>in <00:28:17.155>handy.

518
00:28:20.595 --> 00:28:22.455
<00:28:20.595>Um, <00:28:20.770>we <00:28:20.945>only <00:28:21.120>have <00:28:21.295>two <00:28:21.470>more <00:28:21.645>features <00:28:21.820>to <00:28:21.995>demo.

519
00:28:22.875 --> 00:28:26.335
<00:28:22.875>Uh, <00:28:23.075>feature <00:28:23.275>number <00:28:23.475>eight <00:28:23.675>is <00:28:23.875>the <00:28:24.075>random <00:28:24.275>number

520
00:28:26.425 --> 00:28:27.855
<00:28:26.425>generators <00:28:27.712>API.

521
00:28:28.925 --> 00:28:32.545
<00:28:28.925>Um, <00:28:29.100>I <00:28:29.274>think <00:28:29.450>basically <00:28:29.625>the <00:28:29.800>only <00:28:29.975>thing <00:28:30.149>you <00:28:30.325>need

522
00:28:32.545 --> 00:28:35.865
<00:28:32.545>to <00:28:32.700>know <00:28:32.856>about <00:28:33.011>this <00:28:33.167>is <00:28:33.322>if <00:28:33.478>you <00:28:33.633>wanna <00:28:33.789>generate, <00:28:33.945>uh,

523
00:28:35.965 --> 00:28:39.065
<00:28:35.965>random <00:28:36.165>numbers, <00:28:36.365>how <00:28:36.564>to <00:28:36.764>basically <00:28:36.965>get <00:28:37.165>an <00:28:37.365>instance

524
00:28:39.085 --> 00:28:40.425
<00:28:39.085>of <00:28:39.487>the, <00:28:39.889>the <00:28:40.291>generator.

525
00:28:40.525 --> 00:28:43.345
<00:28:40.525>And <00:28:40.700>the <00:28:40.875>new <00:28:41.050>recommended <00:28:41.225>approach <00:28:41.400>is <00:28:41.575>using <00:28:41.750>the <00:28:41.925>random

526
00:28:43.455 --> 00:28:47.385
<00:28:43.455>generator <00:28:43.629>core <00:28:43.804>interface, <00:28:43.980>uh, <00:28:44.155>calling <00:28:44.330>to <00:28:44.504>get <00:28:44.679>default <00:28:44.855>method.

527
00:28:47.725 --> 00:28:51.185
<00:28:47.725>And <00:28:47.852>then <00:28:47.979>you <00:28:48.106>will <00:28:48.234>get <00:28:48.361>your <00:28:48.488>usual <00:28:48.615>get <00:28:48.743>next <00:28:48.870>in, <00:28:48.997>next <00:28:49.125>long,

528
00:28:51.215 --> 00:28:53.025
<00:28:51.215>next <00:28:51.415>double <00:28:51.615>whatever <00:28:51.814>you <00:28:52.014>you <00:28:52.215>want <00:28:52.415>to <00:28:52.615>generate.

529
00:28:53.685 --> 00:28:57.665
<00:28:53.685>Uh, <00:28:53.801>before <00:28:53.918>we, <00:28:54.034>we, <00:28:54.151>we <00:28:54.268>had <00:28:54.385>to <00:28:54.501>use <00:28:54.618>the <00:28:54.735>random <00:28:54.851>class <00:28:54.968>for <00:28:55.085>this.

530
00:28:58.855 --> 00:29:02.035
<00:28:58.855>Um, <00:28:58.995>and, <00:28:59.135>uh, <00:28:59.275>the <00:28:59.415>random <00:28:59.555>class <00:28:59.695>is <00:28:59.835>of <00:28:59.975>course <00:29:00.115>still <00:29:00.255>there

531
00:29:02.035 --> 00:29:04.555
<00:29:02.035>because <00:29:02.268>shaa <00:29:02.501>is <00:29:02.735>always, <00:29:02.968>uh, <00:29:03.201>backwards <00:29:03.435>compatible.

532
00:29:05.055 --> 00:29:09.875
<00:29:05.055>But <00:29:05.182>the <00:29:05.309>new <00:29:05.436>API <00:29:05.564>is <00:29:05.691>basically <00:29:05.818>there <00:29:05.945>to, <00:29:06.073>um, <00:29:06.200>to <00:29:06.327>enable, <00:29:06.455>uh,

533
00:29:10.265 --> 00:29:12.955
<00:29:10.265>more <00:29:10.498>extensibility <00:29:10.731>and <00:29:10.965>robustness <00:29:11.198>to <00:29:11.431>the <00:29:11.665>API.

534
00:29:13.515 --> 00:29:16.755
<00:29:13.515>I <00:29:13.631>will <00:29:13.748>show <00:29:13.865>you <00:29:13.981>how <00:29:14.098>this <00:29:14.215>new <00:29:14.331>API <00:29:14.448>looks <00:29:14.565>on <00:29:14.681>the <00:29:14.798>next <00:29:14.915>slide.

535
00:29:17.665 --> 00:29:20.205
<00:29:17.665>Um, <00:29:17.805>so <00:29:17.945>basically <00:29:18.085>all <00:29:18.225>the <00:29:18.365>classes <00:29:18.504>that <00:29:18.645>you <00:29:18.784>see <00:29:18.925>in <00:29:19.065>gray,

536
00:29:20.545 --> 00:29:23.285
<00:29:20.545>so <00:29:20.745>the <00:29:20.945>random <00:29:21.145>thread, <00:29:21.345>local, <00:29:21.545>random, <00:29:21.745>secure, <00:29:21.945>random,

537
00:29:23.285 --> 00:29:26.925
<00:29:23.285>splitable <00:29:23.460>random, <00:29:23.635>those <00:29:23.810>were <00:29:23.985>the <00:29:24.160>classes <00:29:24.335>available <00:29:24.510>in <00:29:24.685>the,

538
00:29:27.025 --> 00:29:28.205
<00:29:27.025>in <00:29:27.237>the <00:29:27.449>old <00:29:27.662>API <00:29:27.874>as <00:29:28.087>well.

539
00:29:28.745 --> 00:29:32.005
<00:29:28.745>Uh, <00:29:28.900>but <00:29:29.056>in <00:29:29.211>the <00:29:29.367>old <00:29:29.522>API, <00:29:29.678>there <00:29:29.833>was <00:29:29.989>no <00:29:30.145>interfaces.

540
00:29:32.065 --> 00:29:34.085
<00:29:32.065>So <00:29:32.265>it <00:29:32.465>was <00:29:32.665>really <00:29:32.865>hard <00:29:33.065>for <00:29:33.265>someone <00:29:33.465>to,

541
00:29:34.085 --> 00:29:36.765
<00:29:34.085>to <00:29:34.260>add <00:29:34.435>their <00:29:34.610>own <00:29:34.785>implementation <00:29:34.960>of <00:29:35.135>a <00:29:35.310>specific <00:29:35.485>generator.

542
00:29:36.825 --> 00:29:41.085
<00:29:36.825>And <00:29:36.965>by <00:29:37.105>the <00:29:37.245>way, <00:29:37.385>uh, <00:29:37.525>a <00:29:37.665>significant <00:29:37.805>number <00:29:37.945>of <00:29:38.085>new, <00:29:38.225>uh,

543
00:29:41.135 --> 00:29:44.805
<00:29:41.135>generators <00:29:41.310>has <00:29:41.485>been <00:29:41.660>also <00:29:41.835>added, <00:29:42.010>uh, <00:29:42.185>with <00:29:42.360>this, <00:29:42.535>uh,

544
00:29:44.825 --> 00:29:46.325
<00:29:44.825>change <00:29:45.275>into <00:29:45.725>Java <00:29:46.175>17.

545
00:29:46.425 --> 00:29:48.925
<00:29:46.425>But <00:29:46.625>for <00:29:46.825>the <00:29:47.024>sake <00:29:47.225>of <00:29:47.425>readability, <00:29:47.625>I <00:29:47.825>didn't,

546
00:29:48.925 --> 00:29:50.605
<00:29:48.925>didn't <00:29:49.158>put <00:29:49.391>them <00:29:49.625>on, <00:29:49.858>on <00:29:50.091>this <00:29:50.325>slide.

547
00:29:50.685 --> 00:29:52.805
<00:29:50.685>I <00:29:50.885>only <00:29:51.085>put, <00:29:51.284>put <00:29:51.485>it, <00:29:51.685>uh, <00:29:51.885>interfaces <00:29:52.085>here.

548
00:29:53.785 --> 00:29:56.805
<00:29:53.785>Uh, <00:29:53.892>and <00:29:54.000>you <00:29:54.108>can <00:29:54.215>see <00:29:54.323>that <00:29:54.431>the <00:29:54.538>new <00:29:54.646>API <00:29:54.754>is <00:29:54.861>is <00:29:54.969>designed <00:29:55.077>in <00:29:55.185>a

549
00:29:56.805 --> 00:30:00.325
<00:29:56.805>much <00:29:56.960>better <00:29:57.116>way <00:29:57.271>using, <00:29:57.427>uh, <00:29:57.582>using <00:29:57.738>a <00:29:57.893>bunch <00:29:58.049>of <00:29:58.205>interfaces

550
00:30:00.325 --> 00:30:02.605
<00:30:00.325>where <00:30:00.525>the <00:30:00.725>root <00:30:00.925>interface <00:30:01.125>is <00:30:01.325>the <00:30:01.525>random <00:30:01.725>generator.

551
00:30:02.705 --> 00:30:06.805
<00:30:02.705>And <00:30:02.832>you <00:30:02.959>can <00:30:03.086>use <00:30:03.214>that <00:30:03.341>interface <00:30:03.468>to <00:30:03.595>get <00:30:03.723>a <00:30:03.850>default <00:30:03.977>instance <00:30:04.105>of,

552
00:30:06.905 --> 00:30:08.085
<00:30:06.905>uh, <00:30:07.259>of <00:30:07.613>a <00:30:07.967>generator.

553
00:30:08.345 --> 00:30:11.485
<00:30:08.345>And <00:30:08.500>by <00:30:08.656>the <00:30:08.811>way, <00:30:08.967>the <00:30:09.122>default <00:30:09.278>is <00:30:09.433>not <00:30:09.589>random <00:30:09.745>class.

554
00:30:11.715 --> 00:30:15.685
<00:30:11.715>It's <00:30:11.870>one <00:30:12.026>of <00:30:12.181>the <00:30:12.337>new <00:30:12.492>implementations <00:30:12.648>available <00:30:12.803>in <00:30:12.959>Java <00:30:13.115>17.

555
00:30:16.145 --> 00:30:19.605
<00:30:16.145>That's, <00:30:16.425>um, <00:30:16.705>uh, <00:30:16.985>performance <00:30:17.264>better, <00:30:17.545>uh,

556
00:30:19.965 --> 00:30:22.325
<00:30:19.965>generates <00:30:20.198>numbers <00:30:20.431>faster <00:30:20.665>than <00:30:20.898>the <00:30:21.131>random <00:30:21.365>clause,

557
00:30:22.585 --> 00:30:24.685
<00:30:22.585>but, <00:30:22.865>uh, <00:30:23.145>with <00:30:23.425>one <00:30:23.705>significant <00:30:23.985>difference,

558
00:30:24.715 --> 00:30:25.805
<00:30:24.715>it's <00:30:25.042>not <00:30:25.369>threat <00:30:25.696>safe.

559
00:30:26.145 --> 00:30:28.405
<00:30:26.145>So <00:30:26.300>keep <00:30:26.456>that <00:30:26.611>in <00:30:26.767>mind <00:30:26.922>if, <00:30:27.078>if, <00:30:27.233>if <00:30:27.389>you <00:30:27.545>want

560
00:30:28.405 --> 00:30:31.405
<00:30:28.405>to <00:30:28.580>use <00:30:28.754>a <00:30:28.930>random <00:30:29.105>generator <00:30:29.280>in <00:30:29.455>multiple <00:30:29.629>threats <00:30:29.805>and,

561
00:30:31.625 --> 00:30:33.925
<00:30:31.625>and <00:30:31.800>make <00:30:31.975>sure <00:30:32.150>that <00:30:32.325>you <00:30:32.500>always <00:30:32.675>generate <00:30:32.850>different <00:30:33.025>numbers.

562
00:30:36.345 --> 00:30:39.765
<00:30:36.345>And <00:30:36.500>we <00:30:36.656>are <00:30:36.811>at <00:30:36.967>our <00:30:37.122>last <00:30:37.278>feature <00:30:37.433>number <00:30:37.589>nine, <00:30:37.745>um,

563
00:30:40.275 --> 00:30:42.245
<00:30:40.275>that <00:30:40.625>covers <00:30:40.975>nal <00:30:41.325>pointer <00:30:41.675>exceptions.

564
00:30:42.585 --> 00:30:46.765
<00:30:42.585>Um, <00:30:42.785>so <00:30:42.985>it's <00:30:43.185>again, <00:30:43.385>a <00:30:43.585>pretty <00:30:43.785>basic <00:30:43.985>improvement,

565
00:30:46.825 --> 00:30:50.565
<00:30:46.825>but <00:30:46.980>I <00:30:47.136>think <00:30:47.291>very, <00:30:47.447>um, <00:30:47.602>helpful <00:30:47.758>one <00:30:47.913>that <00:30:48.069>helpful, <00:30:48.225>one

566
00:30:50.565 --> 00:30:52.525
<00:30:50.565>that's <00:30:50.765>gonna <00:30:50.965>help <00:30:51.165>us <00:30:51.365>debug <00:30:51.565>our <00:30:51.765>code <00:30:51.965>faster.

567
00:30:53.305 --> 00:30:57.125
<00:30:53.305>So <00:30:53.460>basically, <00:30:53.616>uh, <00:30:53.771>when <00:30:53.927>you <00:30:54.082>get <00:30:54.238>a <00:30:54.393>now <00:30:54.549>pointer, <00:30:54.705>uh,

568
00:30:58.165 --> 00:31:00.485
<00:30:58.165>previously <00:30:58.398>in <00:30:58.631>early <00:30:58.865>earlier <00:30:59.098>versions <00:30:59.331>of <00:30:59.565>Java,

569
00:31:00.665 --> 00:31:03.125
<00:31:00.665>you <00:31:00.865>only <00:31:01.065>got <00:31:01.264>this <00:31:01.465>first <00:31:01.665>part <00:31:01.865>which <00:31:02.065>would

570
00:31:03.635 --> 00:31:05.325
<00:31:03.635>tell <00:31:03.985>you <00:31:04.335>what's <00:31:04.685>failing, <00:31:05.035>right?

571
00:31:05.345 --> 00:31:08.925
<00:31:05.345>And <00:31:05.461>here <00:31:05.578>we <00:31:05.695>can <00:31:05.811>see <00:31:05.928>that <00:31:06.045>in <00:31:06.161>our <00:31:06.278>example, <00:31:06.395>that <00:31:06.511>the <00:31:06.628>get <00:31:06.745>make,

572
00:31:09.905 --> 00:31:13.165
<00:31:09.905>uh, <00:31:10.060>method <00:31:10.216>of <00:31:10.371>the <00:31:10.527>car <00:31:10.682>class <00:31:10.838>is, <00:31:10.993>uh, <00:31:11.149>is <00:31:11.305>failing

573
00:31:13.165 --> 00:31:14.885
<00:31:13.165>because <00:31:13.631>now <00:31:14.098>null <00:31:14.565>pointer,

574
00:31:16.095 --> 00:31:17.755
<00:31:16.095>but <00:31:16.375>it <00:31:16.655>doesn't <00:31:16.935>say, <00:31:17.215>uh, <00:31:17.495>it,

575
00:31:17.755 --> 00:31:19.755
<00:31:17.755>it <00:31:17.988>didn't <00:31:18.221>say <00:31:18.455>which <00:31:18.688>variable <00:31:18.921>was <00:31:19.155>null.

576
00:31:19.775 --> 00:31:21.355
<00:31:19.775>And <00:31:20.008>this <00:31:20.241>is <00:31:20.475>what's <00:31:20.708>been <00:31:20.941>improved <00:31:21.175>now.

577
00:31:21.455 --> 00:31:23.155
<00:31:21.455>So <00:31:21.629>we <00:31:21.804>have <00:31:21.980>the <00:31:22.155>second <00:31:22.330>part <00:31:22.504>of <00:31:22.679>the <00:31:22.855>message

578
00:31:23.225 --> 00:31:25.835
<00:31:23.225>that <00:31:23.380>actually <00:31:23.536>tells <00:31:23.691>us <00:31:23.847>the <00:31:24.002>reason <00:31:24.158>for <00:31:24.313>the <00:31:24.469>null <00:31:24.625>reference,

579
00:31:25.835 --> 00:31:27.995
<00:31:25.835>so <00:31:26.010>the <00:31:26.185>actual <00:31:26.360>name <00:31:26.535>of <00:31:26.710>the <00:31:26.885>variable <00:31:27.060>that's <00:31:27.235>null.

580
00:31:28.335 --> 00:31:32.835
<00:31:28.335>And, <00:31:28.475>uh, <00:31:28.615>with <00:31:28.755>this, <00:31:28.895>uh, <00:31:29.035>really <00:31:29.175>nice <00:31:29.315>stack <00:31:29.455>trace, <00:31:29.595>we <00:31:29.735>can,

581
00:31:32.935 --> 00:31:35.915
<00:31:32.935>we <00:31:33.075>can, <00:31:33.215>uh, <00:31:33.355>really <00:31:33.495>quickly <00:31:33.635>identify <00:31:33.774>the <00:31:33.915>problem <00:31:34.054>and <00:31:34.195>fix <00:31:34.335>it.

582
00:31:36.415 --> 00:31:39.355
<00:31:36.415>Uh, <00:31:36.590>but <00:31:36.764>of <00:31:36.940>course, <00:31:37.115>if <00:31:37.290>you're <00:31:37.465>properly <00:31:37.639>using, <00:31:37.815>um,

583
00:31:40.195 --> 00:31:41.235
<00:31:40.195>optional <00:31:40.663>class, <00:31:41.130>um,

584
00:31:41.655 --> 00:31:44.035
<00:31:41.655>and <00:31:41.830>everything <00:31:42.004>that's <00:31:42.180>available <00:31:42.355>in <00:31:42.530>Java <00:31:42.705>these <00:31:42.879>days, <00:31:43.055>uh,

585
00:31:44.255 --> 00:31:47.115
<00:31:44.255>you <00:31:44.395>should <00:31:44.535>try <00:31:44.675>to <00:31:44.815>get <00:31:44.955>rid <00:31:45.095>of <00:31:45.235>null <00:31:45.375>pointers, <00:31:45.515>um, <00:31:45.655>altogether.

586
00:31:48.025 --> 00:31:52.405
<00:31:48.025>So <00:31:48.225>this <00:31:48.425>was <00:31:48.625>the <00:31:48.825>the <00:31:49.025>last <00:31:49.225>feature, <00:31:49.425>uh,

587
00:31:53.005 --> 00:31:54.725
<00:31:53.005>I <00:31:53.205>wanted <00:31:53.405>to, <00:31:53.605>to <00:31:53.805>show <00:31:54.005>you <00:31:54.205>for <00:31:54.405>today.

588
00:31:54.905 --> 00:31:58.605
<00:31:54.905>Um, <00:31:55.080>and <00:31:55.254>of <00:31:55.430>course, <00:31:55.605>everything <00:31:55.780>that <00:31:55.955>I'm <00:31:56.129>showing <00:31:56.305>you,

589
00:31:58.665 --> 00:32:00.965
<00:31:58.665>if <00:31:58.865>you <00:31:59.065>wanna <00:31:59.264>look <00:31:59.465>it <00:31:59.665>up, <00:31:59.865>it's <00:32:00.065>uh,

590
00:32:01.075 --> 00:32:02.405
<00:32:01.075>it's <00:32:01.374>all <00:32:01.673>published <00:32:01.972>on <00:32:02.272>GitHub,

591
00:32:03.145 --> 00:32:05.485
<00:32:03.145>so <00:32:03.320>you <00:32:03.495>can <00:32:03.670>check <00:32:03.845>all <00:32:04.020>those <00:32:04.195>code <00:32:04.370>examples <00:32:04.545>there.

592
00:32:05.505 --> 00:32:07.125
<00:32:05.505>Of <00:32:05.705>course, <00:32:05.905>it <00:32:06.105>has <00:32:06.305>unit <00:32:06.505>tests <00:32:06.705>and <00:32:06.905>everything.

593
00:32:08.225 --> 00:32:11.045
<00:32:08.225>Um, <00:32:08.504>and <00:32:08.784>that's <00:32:09.064>everything <00:32:09.344>for <00:32:09.625>today.

594
00:32:11.135 --> 00:32:14.885
<00:32:11.135>Let's <00:32:11.335>just <00:32:11.535>summarize, <00:32:11.735>um, <00:32:11.935>what <00:32:12.135>we've <00:32:12.335>been, <00:32:12.535>uh,

595
00:32:15.015 --> 00:32:16.285
<00:32:15.015>going <00:32:15.300>through <00:32:15.586>in <00:32:15.872>this <00:32:16.158>session.

596
00:32:18.325 --> 00:32:20.265
<00:32:18.325>So <00:32:18.558>first <00:32:18.791>of <00:32:19.025>all, <00:32:19.258>we <00:32:19.491>explained <00:32:19.725>the

597
00:32:20.885 --> 00:32:23.305
<00:32:20.885>new <00:32:21.165>JDK <00:32:21.445>long-term <00:32:21.725>support <00:32:22.004>release <00:32:22.285>cadence.

598
00:32:23.455 --> 00:32:24.745
<00:32:23.455>It's <00:32:23.648>gonna <00:32:23.841>be <00:32:24.035>every <00:32:24.228>two <00:32:24.422>years <00:32:24.616>now

599
00:32:24.745 --> 00:32:25.785
<00:32:24.745>instead <00:32:24.979>of <00:32:25.213>every <00:32:25.447>three <00:32:25.681>years.

600
00:32:26.645 --> 00:32:30.465
<00:32:26.645>Uh, <00:32:26.820>and <00:32:26.995>then <00:32:27.170>we <00:32:27.345>had <00:32:27.520>live <00:32:27.695>demos <00:32:27.870>for <00:32:28.045>most

601
00:32:30.525 --> 00:32:33.465
<00:32:30.525>of <00:32:30.758>the <00:32:30.991>nine <00:32:31.225>selected, <00:32:31.458>uh, <00:32:31.691>development <00:32:31.925>features

602
00:32:33.465 --> 00:32:36.105
<00:32:33.465>that <00:32:33.698>I <00:32:33.931>picked <00:32:34.165>out, <00:32:34.398>um, <00:32:34.631>for <00:32:34.865>you.

603
00:32:36.445 --> 00:32:40.165
<00:32:36.445>So <00:32:36.585>it <00:32:36.725>basically <00:32:36.865>all <00:32:37.004>updates <00:32:37.145>from <00:32:37.284>Java <00:32:37.425>11 <00:32:37.564>to <00:32:37.705>Java <00:32:37.845>17.

604
00:32:40.945 --> 00:32:44.165
<00:32:40.945>Uh, <00:32:41.100>but <00:32:41.256>to <00:32:41.411>sum <00:32:41.567>it <00:32:41.722>up, <00:32:41.878>it's <00:32:42.033>mostly <00:32:42.189>smaller <00:32:42.345>updates

605
00:32:44.505 --> 00:32:47.725
<00:32:44.505>and <00:32:44.705>improvements <00:32:44.905>in <00:32:45.105>the <00:32:45.305>already <00:32:45.505>existing <00:32:45.705>Java <00:32:45.905>APIs.

606
00:32:48.455 --> 00:32:51.445
<00:32:48.455>There <00:32:48.735>is <00:32:49.014>actually <00:32:49.294>no <00:32:49.574>groundbreaking <00:32:49.855>change.

607
00:32:51.445 --> 00:32:53.805
<00:32:51.445>Maybe <00:32:51.725>the <00:32:52.004>changes <00:32:52.284>in <00:32:52.564>switch <00:32:52.845>are,

608
00:32:53.865 --> 00:32:55.205
<00:32:53.865>are <00:32:54.166>the <00:32:54.468>most <00:32:54.769>ground <00:32:55.071>groundbreaking,

609
00:32:55.225 --> 00:32:58.125
<00:32:55.225>but <00:32:55.425>there <00:32:55.625>is <00:32:55.824>nothing <00:32:56.024>really <00:32:56.225>fundamental <00:32:56.425>that <00:32:56.625>changed.

610
00:32:58.745 --> 00:33:03.125
<00:32:58.745>Uh, <00:32:58.872>for <00:32:58.999>example, <00:32:59.126>when <00:32:59.254>I <00:32:59.381>think <00:32:59.508>of <00:32:59.635>when <00:32:59.763>Java <00:32:59.890>eight <00:33:00.017>was <00:33:00.145>out

611
00:33:03.185 --> 00:33:06.245
<00:33:03.185>and <00:33:03.340>stream <00:33:03.496>API <00:33:03.651>was <00:33:03.807>out, <00:33:03.962>this <00:33:04.118>really <00:33:04.273>changed <00:33:04.429>the <00:33:04.585>way

612
00:33:06.265 --> 00:33:08.925
<00:33:06.265>how <00:33:06.381>we <00:33:06.498>think <00:33:06.615>and <00:33:06.731>how <00:33:06.848>we <00:33:06.965>develop <00:33:07.081>and <00:33:07.198>how <00:33:07.315>we <00:33:07.431>write <00:33:07.548>our <00:33:07.665>code.

613
00:33:09.445 --> 00:33:11.325
<00:33:09.445>I <00:33:09.620>think <00:33:09.794>compared <00:33:09.970>to <00:33:10.145>that, <00:33:10.320>all <00:33:10.495>of <00:33:10.669>these, <00:33:10.845>all

614
00:33:11.325 --> 00:33:14.685
<00:33:11.325>of <00:33:11.500>these <00:33:11.675>updates <00:33:11.850>are, <00:33:12.025>um, <00:33:12.200>quite, <00:33:12.375>um, <00:33:12.550>quite <00:33:12.725>small,

615
00:33:14.785 --> 00:33:17.765
<00:33:14.785>but <00:33:15.018>again, <00:33:15.251>uh, <00:33:15.485>they <00:33:15.718>are <00:33:15.951>quite <00:33:16.185>handy.

616
00:33:18.065 --> 00:33:23.045
<00:33:18.065>So <00:33:18.172>if <00:33:18.280>you <00:33:18.388>have <00:33:18.495>the <00:33:18.603>luxury <00:33:18.711>to <00:33:18.818>switch <00:33:18.926>to <00:33:19.034>Java <00:33:19.141>17, <00:33:19.249>um, <00:33:19.357>why <00:33:19.465>not?

617
00:33:23.105 --> 00:33:25.845
<00:33:23.105>Why <00:33:23.260>not <00:33:23.416>make <00:33:23.571>use <00:33:23.727>of, <00:33:23.882>um, <00:33:24.038>all <00:33:24.193>of <00:33:24.349>those <00:33:24.505>features

618
00:33:25.845 --> 00:33:28.445
<00:33:25.845>that <00:33:26.078>we <00:33:26.311>just <00:33:26.545>just <00:33:26.778>demoed <00:33:27.011>today, <00:33:27.245>um,

619
00:33:28.935 --> 00:33:30.485
<00:33:28.935>which <00:33:29.167>you <00:33:29.399>should <00:33:29.632>be <00:33:29.865>now <00:33:30.097>familiar <00:33:30.330>with

620
00:33:30.705 --> 00:33:35.045
<00:33:30.705>and, <00:33:30.832>um, <00:33:30.959>be <00:33:31.086>ready <00:33:31.214>to <00:33:31.341>start <00:33:31.468>using, <00:33:31.595>um, <00:33:31.723>on <00:33:31.850>your <00:33:31.977>next <00:33:32.105>project.

621
00:33:35.105 --> 00:33:37.205
<00:33:35.105>That's <00:33:35.338>gonna <00:33:35.571>be <00:33:35.805>based <00:33:36.038>on <00:33:36.271>Java <00:33:36.505>17.

622
00:33:37.585 --> 00:33:40.445
<00:33:37.585>So <00:33:37.818>that <00:33:38.051>is <00:33:38.285>all <00:33:38.518>for <00:33:38.751>me <00:33:38.985>today.

623
00:33:40.885 --> 00:33:42.325
<00:33:40.885>I <00:33:41.144>hope <00:33:41.403>you <00:33:41.662>liked <00:33:41.921>the <00:33:42.181>session,

624
00:33:42.785 --> 00:33:45.965
<00:33:42.785>and <00:33:42.925>we <00:33:43.065>can <00:33:43.205>open <00:33:43.345>up <00:33:43.485>the <00:33:43.625>round <00:33:43.765>for <00:33:43.905>q <00:33:44.045>and <00:33:44.185>a.

625
00:33:49.635 --> 00:33:51.415
<00:33:49.635>Hey, <00:33:49.835>Daniel, <00:33:50.035>thank <00:33:50.235>you <00:33:50.435>very <00:33:50.635>much <00:33:50.835>for <00:33:51.035>this.

626
00:33:51.485 --> 00:33:52.535
<00:33:51.485>Very <00:33:51.800>cool <00:33:52.115>of <00:33:52.430>you.

627
00:33:52.915 --> 00:33:56.295
<00:33:52.915>Um, <00:33:53.055>so <00:33:53.195>just <00:33:53.335>asking <00:33:53.475>the <00:33:53.615>audience, <00:33:53.754>if <00:33:53.895>you <00:33:54.034>have <00:33:54.175>some <00:33:54.315>question,

628
00:33:56.595 --> 00:34:00.375
<00:33:56.595>use <00:33:56.722>the <00:33:56.849>ask <00:33:56.976>button <00:33:57.104>or <00:33:57.231>write <00:33:57.358>your <00:33:57.485>question <00:33:57.613>down <00:33:57.740>in <00:33:57.867>the <00:33:57.995>chat.

629
00:34:00.955 --> 00:34:03.495
<00:34:00.955>Um, <00:34:01.155>there <00:34:01.355>is <00:34:01.554>one <00:34:01.754>first <00:34:01.955>question <00:34:02.155>of <00:34:02.355>Inga.

630
00:34:03.795 --> 00:34:08.295
<00:34:03.795>Um, <00:34:03.935>she <00:34:04.075>is <00:34:04.215>asking, <00:34:04.355>is <00:34:04.495>it <00:34:04.635>advisable <00:34:04.775>to <00:34:04.915>upgrade <00:34:05.055>from <00:34:05.195>14

631
00:34:08.555 --> 00:34:12.495
<00:34:08.554>as <00:34:08.694>the <00:34:08.835>steps <00:34:08.975>are <00:34:09.114>minor <00:34:09.254>in <00:34:09.395>comparison <00:34:09.534>to <00:34:09.674>earlier <00:34:09.815>LTS <00:34:09.955>updates?

632
00:34:13.075 --> 00:34:14.655
<00:34:13.074>Is <00:34:13.355>it <00:34:13.634>rough? <00:34:13.915>As <00:34:14.194>you <00:34:14.475>mentioned,

633
00:34:14.655 --> 00:34:16.295
<00:34:14.655>there <00:34:15.005>is <00:34:15.355>no <00:34:15.705>groundbreaking <00:34:16.055>stuff,

634
00:34:16.515 --> 00:34:18.375
<00:34:16.514>but, <00:34:16.714>uh, <00:34:16.915>maybe <00:34:17.114>what's <00:34:17.315>your <00:34:17.514>take <00:34:17.714>on <00:34:17.915>that?

635
00:34:19.815 --> 00:34:21.415
<00:34:19.815>I, <00:34:20.014>I <00:34:20.215>just <00:34:20.415>didn't <00:34:20.615>hear <00:34:20.815>the <00:34:21.014>first <00:34:21.215>part.

636
00:34:21.435 --> 00:34:23.695
<00:34:21.435>If <00:34:21.590>you <00:34:21.746>can <00:34:21.901>just <00:34:22.057>repeat, <00:34:22.212>uh, <00:34:22.368>the, <00:34:22.523>the <00:34:22.679>first <00:34:22.835>part,

637
00:34:23.955 --> 00:34:28.925
<00:34:23.955>Um, <00:34:24.110>is <00:34:24.266>it <00:34:24.421>advisable <00:34:24.577>to <00:34:24.732>upgrade <00:34:24.888>from <00:34:25.043>14 <00:34:25.199>version <00:34:25.355>14

638
00:34:29.635 --> 00:34:30.635
<00:34:29.635>To <00:34:30.085>17? <00:34:30.535>Mm-hmm.

639
00:34:30.635 --> 00:34:33.135
<00:34:30.635>Yeah, <00:34:30.985>I <00:34:31.335>would <00:34:31.685>say <00:34:32.035>yes.

640
00:34:33.365 --> 00:34:34.655
<00:34:33.364>It's <00:34:33.945>definitely <00:34:34.526>advisable

641
00:34:34.655 --> 00:34:38.015
<00:34:34.655>because, <00:34:34.855>uh, <00:34:35.055>14 <00:34:35.255>is <00:34:35.455>not <00:34:35.655>a <00:34:35.855>long-term <00:34:36.055>supported

642
00:34:38.015 --> 00:34:39.175
<00:34:38.014>version <00:34:38.362>of <00:34:38.711>Java, <00:34:39.059>right?

643
00:34:39.235 --> 00:34:43.855
<00:34:39.235>So <00:34:39.342>if, <00:34:39.450>if <00:34:39.558>you <00:34:39.665>use <00:34:39.773>that <00:34:39.881>on <00:34:39.988>a, <00:34:40.096>on <00:34:40.204>a <00:34:40.311>production <00:34:40.419>system, <00:34:40.527>so <00:34:40.635>I,

644
00:34:44.175 --> 00:34:47.215
<00:34:44.175>I <00:34:44.375>don't <00:34:44.575>know <00:34:44.775>exactly <00:34:44.975>what <00:34:45.175>guarantees <00:34:45.375>Oracle <00:34:45.575>gives

645
00:34:47.275 --> 00:34:50.215
<00:34:47.275>for <00:34:47.430>the <00:34:47.586>non <00:34:47.741>long-term <00:34:47.897>supported <00:34:48.052>versions, <00:34:48.208>but <00:34:48.363>it's <00:34:48.519>not <00:34:48.675>long.

646
00:34:50.275 --> 00:34:52.615
<00:34:50.275>So <00:34:50.402>they <00:34:50.529>only <00:34:50.656>support <00:34:50.784>it <00:34:50.911>for <00:34:51.038>a <00:34:51.165>really <00:34:51.293>short <00:34:51.420>period <00:34:51.547>of <00:34:51.675>time.

647
00:34:52.955 --> 00:34:56.535
<00:34:52.955>And <00:34:53.110>if <00:34:53.266>there <00:34:53.421>is, <00:34:53.577>for <00:34:53.732>example, <00:34:53.888>a <00:34:54.043>significant <00:34:54.199>security <00:34:54.355>issue,

648
00:34:57.195 --> 00:34:59.815
<00:34:57.195>uh, <00:34:57.428>your <00:34:57.661>version <00:34:57.895>14 <00:34:58.128>won't <00:34:58.361>get <00:34:58.595>updated,

649
00:34:59.815 --> 00:35:01.655
<00:34:59.815>but <00:35:00.095>version <00:35:00.375>17 <00:35:00.655>will <00:35:00.935>get <00:35:01.215>updated.

650
00:35:01.715 --> 00:35:03.855
<00:35:01.715>So <00:35:01.890>it's, <00:35:02.065>it's <00:35:02.240>very <00:35:02.415>much <00:35:02.590>desirable <00:35:02.765>that <00:35:02.940>you <00:35:03.115>update

651
00:35:03.875 --> 00:35:05.015
<00:35:03.875>to <00:35:04.131>the <00:35:04.388>long-term <00:35:04.644>support <00:35:04.901>version.

652
00:35:06.315 --> 00:35:08.085
<00:35:06.315>Okay, <00:35:06.665>that's <00:35:07.015>a <00:35:07.365>good <00:35:07.715>answer.

653
00:35:08.745 --> 00:35:11.605
<00:35:08.745>Um, <00:35:08.944>then, <00:35:09.145>um, <00:35:09.345>Peter <00:35:09.545>has <00:35:09.745>an <00:35:09.944>interesting <00:35:10.145>question.

654
00:35:12.065 --> 00:35:16.205
<00:35:12.065>Are <00:35:12.205>there <00:35:12.345>cases <00:35:12.485>where <00:35:12.625>you <00:35:12.765>recommend <00:35:12.905>not <00:35:13.045>to <00:35:13.185>upgrade <00:35:13.325>to <00:35:13.465>17?

655
00:35:16.505 --> 00:35:18.445
<00:35:16.505>Uh, <00:35:16.738>we <00:35:16.971>are <00:35:17.205>still <00:35:17.438>using <00:35:17.671>Java <00:35:17.905>eight.

656
00:35:20.865 --> 00:35:23.605
<00:35:20.865>Um, <00:35:21.004>I <00:35:21.145>think <00:35:21.285>that, <00:35:21.424>you <00:35:21.564>know, <00:35:21.705>it's <00:35:21.845>a <00:35:21.984>very <00:35:22.125>complex <00:35:22.265>question.

657
00:35:23.625 --> 00:35:27.205
<00:35:23.625>It <00:35:23.765>it <00:35:23.905>depends <00:35:24.045>on <00:35:24.185>your <00:35:24.325>setup, <00:35:24.465>it <00:35:24.605>depends <00:35:24.745>on <00:35:24.885>the <00:35:25.025>framework

658
00:35:27.205 --> 00:35:29.485
<00:35:27.205>that <00:35:27.485>you're <00:35:27.765>using <00:35:28.045>on <00:35:28.325>different <00:35:28.605>vendors.

659
00:35:29.745 --> 00:35:34.525
<00:35:29.745>For <00:35:29.978>example, <00:35:30.211>uh, <00:35:30.444>sometimes <00:35:30.678>you, <00:35:30.911>you <00:35:31.145>will,

660
00:35:34.745 --> 00:35:38.965
<00:35:34.745>um, <00:35:34.944>you <00:35:35.145>will <00:35:35.345>need <00:35:35.545>to <00:35:35.745>wait, <00:35:35.944>you <00:35:36.145>know,

661
00:35:38.965 --> 00:35:42.085
<00:35:38.965>for <00:35:39.105>a <00:35:39.245>specific <00:35:39.385>vendor <00:35:39.525>of <00:35:39.665>a <00:35:39.805>specific <00:35:39.945>framework <00:35:40.085>to <00:35:40.225>also <00:35:40.365>update

662
00:35:42.105 --> 00:35:44.245
<00:35:42.105>to <00:35:42.260>a <00:35:42.416>specific <00:35:42.571>version <00:35:42.727>of <00:35:42.882>Java <00:35:43.038>before <00:35:43.193>you <00:35:43.349>can, <00:35:43.505>right?

663
00:35:44.305 --> 00:35:45.685
<00:35:44.305>And, <00:35:44.615>and <00:35:44.926>that's, <00:35:45.236>that's <00:35:45.547>fine.

664
00:35:46.025 --> 00:35:48.565
<00:35:46.025>Uh, <00:35:46.165>I <00:35:46.305>think <00:35:46.445>if <00:35:46.585>you <00:35:46.725>have <00:35:46.865>the <00:35:47.005>freedom <00:35:47.145>to <00:35:47.285>choose, <00:35:47.425>uh,

665
00:35:48.665 --> 00:35:52.295
<00:35:48.665>you <00:35:48.840>should <00:35:49.015>go <00:35:49.190>with <00:35:49.365>a, <00:35:49.540>with <00:35:49.715>a <00:35:49.890>last <00:35:50.065>long,

666
00:35:52.565 --> 00:35:56.455
<00:35:52.565>long <00:35:52.740>term <00:35:52.915>supported <00:35:53.090>version <00:35:53.265>of, <00:35:53.440>of <00:35:53.615>Java, <00:35:53.790>uh, <00:35:53.965>just

667
00:35:56.455 --> 00:36:00.255
<00:35:56.455>because <00:35:56.595>it's, <00:35:56.735>it's <00:35:56.875>cool, <00:35:57.015>it's <00:35:57.154>got <00:35:57.295>all <00:35:57.435>the <00:35:57.575>latest <00:35:57.715>APIs <00:35:57.855>and,

668
00:36:00.315 --> 00:36:02.015
<00:36:00.315>and <00:36:00.515>you <00:36:00.715>will <00:36:00.915>get <00:36:01.115>all, <00:36:01.315>all <00:36:01.515>the <00:36:01.715>updates.

669
00:36:02.155 --> 00:36:06.455
<00:36:02.155>Uh, <00:36:02.355>so <00:36:02.555>it's <00:36:02.755>also <00:36:02.955>secure, <00:36:03.155>um, <00:36:03.355>reasons <00:36:03.555>not

670
00:36:06.475 --> 00:36:09.775
<00:36:06.475>to <00:36:06.674>upgrade, <00:36:06.875>not <00:36:07.075>really, <00:36:07.275>unless <00:36:07.475>there <00:36:07.674>is <00:36:07.875>something,

671
00:36:09.835 --> 00:36:11.735
<00:36:09.835>unless <00:36:10.068>there's <00:36:10.301>something <00:36:10.535>holding <00:36:10.768>your <00:36:11.001>rack, <00:36:11.235>right?

672
00:36:11.955 --> 00:36:14.015
<00:36:11.955>You, <00:36:12.130>you <00:36:12.305>should <00:36:12.480>first <00:36:12.654>of <00:36:12.830>course <00:36:13.005>try <00:36:13.180>it <00:36:13.355>out

673
00:36:14.215 --> 00:36:17.575
<00:36:14.215>and <00:36:14.370>do <00:36:14.526>do <00:36:14.681>a <00:36:14.837>POC, <00:36:14.992>um, <00:36:15.148>Java <00:36:15.303>17, <00:36:15.459>it's <00:36:15.615>not,

674
00:36:17.645 --> 00:36:19.535
<00:36:17.645>it's <00:36:17.925>not <00:36:18.205>been <00:36:18.485>out <00:36:18.765>that <00:36:19.045>long.

675
00:36:20.035 --> 00:36:22.375
<00:36:20.035>So <00:36:20.190>it <00:36:20.346>is <00:36:20.501>possible <00:36:20.657>that <00:36:20.812>some, <00:36:20.968>for <00:36:21.123>some, <00:36:21.279>for <00:36:21.435>example,

676
00:36:22.615 --> 00:36:24.335
<00:36:22.615>Maven <00:36:22.964>plugins <00:36:23.314>or <00:36:23.665>something <00:36:24.015>mm-hmm.

677
00:36:24.435 --> 00:36:27.135
<00:36:24.435>Uh, <00:36:24.575>that <00:36:24.715>you <00:36:24.855>are <00:36:24.995>using <00:36:25.134>in <00:36:25.275>your <00:36:25.415>build <00:36:25.555>scripts <00:36:25.695>is <00:36:25.835>not

678
00:36:27.135 --> 00:36:28.535
<00:36:27.135>yet <00:36:27.450>compatible <00:36:27.765>with <00:36:28.080>Java <00:36:28.395>17.

679
00:36:28.535 --> 00:36:30.015
<00:36:28.535>Mm-hmm. <00:36:28.701>So <00:36:28.868>that <00:36:29.034>could <00:36:29.201>be <00:36:29.367>one <00:36:29.533>of <00:36:29.700>the <00:36:29.866>reasons

680
00:36:30.015 --> 00:36:33.135
<00:36:30.015>that <00:36:30.214>could <00:36:30.415>stop <00:36:30.615>you <00:36:30.815>from, <00:36:31.015>uh, <00:36:31.214>from <00:36:31.415>upgrading.

681
00:36:33.605 --> 00:36:37.975
<00:36:33.605>There's <00:36:33.780>actually, <00:36:33.955>uh, <00:36:34.130>the <00:36:34.305>next <00:36:34.480>question <00:36:34.655>by, <00:36:34.830>by, <00:36:35.005>uh,

682
00:36:38.115 --> 00:36:40.135
<00:36:38.115>who <00:36:38.290>was <00:36:38.464>asking, <00:36:38.640>do <00:36:38.814>you <00:36:38.990>have <00:36:39.165>a <00:36:39.339>quick <00:36:39.515>call

683
00:36:40.135 --> 00:36:43.735
<00:36:40.135>or <00:36:40.335>have <00:36:40.535>you <00:36:40.735>encountered, <00:36:40.935>uh, <00:36:41.135>some <00:36:41.335>popular <00:36:41.535>functionalities

684
00:36:43.925 --> 00:36:46.895
<00:36:43.925>that, <00:36:44.100>uh, <00:36:44.275>are <00:36:44.450>being <00:36:44.625>removed <00:36:44.800>in <00:36:44.975>the <00:36:45.150>new <00:36:45.325>version?

685
00:36:49.005 --> 00:36:50.835
<00:36:49.005>There <00:36:49.471>are <00:36:49.938>always <00:36:50.405>things

686
00:36:50.835 --> 00:36:53.275
<00:36:50.835>that <00:36:51.035>are <00:36:51.235>removed <00:36:51.435>from <00:36:51.635>new <00:36:51.835>versions <00:36:52.035>of <00:36:52.235>Java.

687
00:36:53.655 --> 00:36:58.035
<00:36:53.655>Uh, <00:36:53.810>but <00:36:53.966>no, <00:36:54.121>not <00:36:54.277>nothing <00:36:54.432>that <00:36:54.588>I've <00:36:54.743>found <00:36:54.899>so <00:36:55.055>far

688
00:36:58.105 --> 00:36:59.635
<00:36:58.105>that <00:36:58.380>I <00:36:58.655>would <00:36:58.931>be, <00:36:59.206>uh, <00:36:59.482>missing.

689
00:37:00.295 --> 00:37:03.955
<00:37:00.295>Um, <00:37:00.450>how <00:37:00.606>Oracle <00:37:00.761>does <00:37:00.917>it, <00:37:01.072>they, <00:37:01.228>they <00:37:01.383>always <00:37:01.539>like <00:37:01.695>deprecate,

690
00:37:04.335 --> 00:37:07.355
<00:37:04.335>um, <00:37:04.462>a <00:37:04.589>certain <00:37:04.716>set <00:37:04.844>of <00:37:04.971>APIs <00:37:05.098>and <00:37:05.225>classes <00:37:05.353>for <00:37:05.480>at <00:37:05.607>least <00:37:05.735>two

691
00:37:07.355 --> 00:37:10.155
<00:37:07.355>or <00:37:07.588>three <00:37:07.821>releases <00:37:08.055>before <00:37:08.288>they <00:37:08.521>remove <00:37:08.755>it.

692
00:37:10.695 --> 00:37:13.835
<00:37:10.695>So <00:37:10.850>if, <00:37:11.006>if, <00:37:11.161>if <00:37:11.317>there <00:37:11.472>is <00:37:11.628>something, <00:37:11.783>you <00:37:11.939>know, <00:37:12.095>deprecated

693
00:37:13.835 --> 00:37:15.475
<00:37:13.835>that <00:37:14.035>you've <00:37:14.235>been <00:37:14.435>using, <00:37:14.635>then <00:37:14.835>there <00:37:15.035>is <00:37:15.235>a

694
00:37:15.475 --> 00:37:16.595
<00:37:15.475>chance <00:37:15.727>that <00:37:15.979>that <00:37:16.231>is <00:37:16.482>removed.

695
00:37:17.135 --> 00:37:20.075
<00:37:17.135>Uh, <00:37:17.368>but <00:37:17.601>apart <00:37:17.835>from <00:37:18.068>that, <00:37:18.301>uh, <00:37:18.535>no,

696
00:37:20.235 --> 00:37:22.475
<00:37:20.235>I <00:37:20.515>don't <00:37:20.795>think <00:37:21.075>anything <00:37:21.355>significant <00:37:21.635>has

697
00:37:22.475 --> 00:37:23.635
<00:37:22.475>been, <00:37:22.823>has <00:37:23.171>been <00:37:23.519>removed.

698
00:37:23.785 --> 00:37:26.995
<00:37:23.785>Java <00:37:23.960>really <00:37:24.134>always <00:37:24.310>tries <00:37:24.484>to, <00:37:24.660>to <00:37:24.835>be <00:37:25.009>backward <00:37:25.185>compatible.

699
00:37:27.855 --> 00:37:32.595
<00:37:27.855>Mm-hmm. <00:37:28.030>Then, <00:37:28.205>uh, <00:37:28.380>a <00:37:28.555>more <00:37:28.730>general <00:37:28.905>question, <00:37:29.080>uh, <00:37:29.255>like,

700
00:37:32.735 --> 00:37:34.115
<00:37:32.735>uh, <00:37:33.045>do <00:37:33.356>you <00:37:33.666>have <00:37:33.977>something

701
00:37:34.135 --> 00:37:36.875
<00:37:34.135>to <00:37:34.310>say <00:37:34.485>about <00:37:34.660>J <00:37:34.835>unit <00:37:35.010>testing <00:37:35.185>in <00:37:35.360>Java <00:37:35.535>17

702
00:37:39.835 --> 00:37:41.435
<00:37:39.835>J <00:37:40.115>unit <00:37:40.395>testing <00:37:40.675>in <00:37:40.955>Java <00:37:41.235>17?

703
00:37:41.735 --> 00:37:44.555
<00:37:41.735>Uh, <00:37:41.968>not <00:37:42.201>really. <00:37:42.435>No. <00:37:42.668>Nothing, <00:37:42.901>nothing <00:37:43.135>specific.

704
00:37:44.855 --> 00:37:47.395
<00:37:44.855>So, <00:37:45.205>um, <00:37:45.555>for <00:37:45.905>these <00:37:46.255>examples

705
00:37:47.575 --> 00:37:49.715
<00:37:47.575>and <00:37:47.750>for <00:37:47.924>some <00:37:48.100>also <00:37:48.274>tests <00:37:48.450>I <00:37:48.625>did, <00:37:48.799>I, <00:37:48.975>I

706
00:37:49.715 --> 00:37:52.315
<00:37:49.715>of <00:37:49.890>course <00:37:50.065>used <00:37:50.240>chain <00:37:50.415>five, <00:37:50.590>so <00:37:50.765>the <00:37:50.940>latest <00:37:51.115>version,

707
00:37:52.885 --> 00:37:54.795
<00:37:52.885>everything, <00:37:53.351>everything <00:37:53.818>works <00:37:54.285>fine.

708
00:37:55.015 --> 00:37:59.975
<00:37:55.015>Uh, <00:37:55.365>so <00:37:55.714>nothing, <00:37:56.065>nothing <00:37:56.415>specific

709
00:38:00.195 --> 00:38:02.215
<00:38:00.195>to <00:38:00.350>this <00:38:00.506>version <00:38:00.661>of <00:38:00.817>Java <00:38:00.972>when <00:38:01.128>it <00:38:01.283>comes <00:38:01.439>to <00:38:01.595>testing.

710
00:38:02.395 --> 00:38:05.575
<00:38:02.395>So <00:38:02.675>simply <00:38:02.955>use, <00:38:03.235>simply <00:38:03.515>use <00:38:03.795>your,

711
00:38:06.595 --> 00:38:08.735
<00:38:06.595>the <00:38:06.750>same <00:38:06.906>testing <00:38:07.061>tools <00:38:07.217>that <00:38:07.372>you've <00:38:07.528>been <00:38:07.683>using <00:38:07.839>so <00:38:07.995>far.

712
00:38:09.435 --> 00:38:12.125
<00:38:09.435>Good. <00:38:09.715>Then <00:38:09.995>some <00:38:10.275>more <00:38:10.555>specific <00:38:10.835>questions.

713
00:38:12.425 --> 00:38:15.805
<00:38:12.425>Uh, <00:38:12.600>Ivan <00:38:12.775>is <00:38:12.950>asking, <00:38:13.125>is <00:38:13.300>J <00:38:13.475>Rocket <00:38:13.650>still <00:38:13.825>alive?

714
00:38:18.025 --> 00:38:20.845
<00:38:18.025>Uh, <00:38:18.200>that <00:38:18.375>I <00:38:18.550>don't <00:38:18.725>know, <00:38:18.900>so, <00:38:19.075>okay. <00:38:19.250>Not <00:38:19.425>sure.

715
00:38:21.585 --> 00:38:25.085
<00:38:21.585>And, <00:38:21.760>uh, <00:38:21.935>outdoor <00:38:22.110>Rachman <00:38:22.285>is <00:38:22.460>asking <00:38:22.635>is <00:38:22.810>record, <00:38:22.985>uh,

716
00:38:25.395 --> 00:38:28.525
<00:38:25.395>that <00:38:25.570>does <00:38:25.745>record <00:38:25.920>do <00:38:26.095>all <00:38:26.270>what, <00:38:26.445>uh, <00:38:26.620>Lombok <00:38:26.795>does.

717
00:38:28.745 --> 00:38:30.885
<00:38:28.745>So <00:38:29.025>can <00:38:29.305>we <00:38:29.585>dispense <00:38:29.865>Lombok <00:38:30.145>plugin?

718
00:38:32.665 --> 00:38:34.725
<00:38:32.665>Uh, <00:38:32.865>that <00:38:33.065>depends <00:38:33.265>what <00:38:33.465>you <00:38:33.665>do <00:38:33.865>with <00:38:34.065>Lombok.

719
00:38:34.785 --> 00:38:37.725
<00:38:34.785>So, <00:38:34.940>uh, <00:38:35.096>Lobo <00:38:35.251>can <00:38:35.407>do <00:38:35.562>a <00:38:35.718>lot <00:38:35.873>of <00:38:36.029>things, <00:38:36.185>uh,

720
00:38:37.725 --> 00:38:39.445
<00:38:37.725>it <00:38:38.075>can <00:38:38.424>generate <00:38:38.775>different <00:38:39.125>things.

721
00:38:39.865 --> 00:38:44.765
<00:38:39.865>Um, <00:38:40.040>I <00:38:40.214>think <00:38:40.390>a <00:38:40.564>record <00:38:40.740>mostly, <00:38:40.915>uh, <00:38:41.089>replaces, <00:38:41.265>uh,

722
00:38:45.315 --> 00:38:47.965
<00:38:45.315>that <00:38:45.548>data <00:38:45.781>annotation <00:38:46.015>from <00:38:46.248>from <00:38:46.481>Lo <00:38:46.715>book

723
00:38:47.965 --> 00:38:51.405
<00:38:47.965>because <00:38:48.120>that <00:38:48.276>does, <00:38:48.431>uh, <00:38:48.587>the <00:38:48.742>pretty <00:38:48.898>much <00:38:49.053>the <00:38:49.209>same <00:38:49.365>thing.

724
00:38:51.465 --> 00:38:52.765
<00:38:51.465>It, <00:38:51.855>it <00:38:52.245>generates <00:38:52.634>the,

725
00:38:53.105 --> 00:38:55.005
<00:38:53.105>the <00:38:53.385>construc <00:38:53.665>generates <00:38:53.945>the <00:38:54.225>getters, <00:38:54.505>right?

726
00:38:55.065 --> 00:38:58.285
<00:38:55.065>But <00:38:55.220>with <00:38:55.376>Long <00:38:55.531>Book <00:38:55.687>you <00:38:55.842>can <00:38:55.998>do <00:38:56.153>more <00:38:56.309>advanced <00:38:56.465>things.

727
00:38:58.625 --> 00:39:01.565
<00:38:58.625>Uh, <00:38:58.765>so <00:38:58.905>it's <00:38:59.045>not <00:38:59.185>the <00:38:59.325>only <00:38:59.465>use <00:38:59.605>case <00:38:59.745>of <00:38:59.885>long <00:39:00.025>book.

728
00:39:01.665 --> 00:39:03.685
<00:39:01.665>So <00:39:01.865>I <00:39:02.065>would <00:39:02.265>say <00:39:02.465>that's <00:39:02.665>up <00:39:02.865>to <00:39:03.065>you

729
00:39:03.685 --> 00:39:07.005
<00:39:03.685>and <00:39:03.825>your <00:39:03.965>team <00:39:04.105>to <00:39:04.245>decide <00:39:04.384>if <00:39:04.525>records <00:39:04.665>are <00:39:04.805>good <00:39:04.945>enough <00:39:05.085>so

730
00:39:07.005 --> 00:39:08.325
<00:39:07.005>that <00:39:07.242>you <00:39:07.480>completely <00:39:07.717>drop <00:39:07.955>long <00:39:08.192>book

731
00:39:08.345 --> 00:39:11.405
<00:39:08.345>or <00:39:08.484>if <00:39:08.625>you <00:39:08.765>want <00:39:08.904>to <00:39:09.044>use <00:39:09.185>both <00:39:09.325>of <00:39:09.464>them <00:39:09.605>together. <00:39:09.745>Mm-hmm.

732
00:39:12.265 --> 00:39:13.725
<00:39:12.265>The <00:39:12.593>team <00:39:12.922>is <00:39:13.250>asking, <00:39:13.578>uh,

733
00:39:13.905 --> 00:39:16.245
<00:39:13.905>can <00:39:14.105>we <00:39:14.305>create <00:39:14.505>a <00:39:14.705>default <00:39:14.905>constructor <00:39:15.105>in <00:39:15.305>record?

734
00:39:18.385 --> 00:39:22.045
<00:39:18.385>Uh, <00:39:18.540>can <00:39:18.696>we <00:39:18.851>create <00:39:19.007>a <00:39:19.162>default <00:39:19.318>constructor? <00:39:19.473>I <00:39:19.629>haven't <00:39:19.785>tried.

735
00:39:22.325 --> 00:39:23.645
<00:39:22.325>I <00:39:22.622>think <00:39:22.919>we <00:39:23.216>can, <00:39:23.513>we,

736
00:39:23.645 --> 00:39:26.085
<00:39:23.645>because <00:39:23.878>we <00:39:24.111>should <00:39:24.345>be <00:39:24.578>able <00:39:24.811>to, <00:39:25.045>uh,

737
00:39:27.365 --> 00:39:28.965
<00:39:27.365>override <00:39:28.064>everything, <00:39:28.765>right?

738
00:39:29.225 --> 00:39:32.205
<00:39:29.225>But <00:39:29.424>by <00:39:29.625>default <00:39:29.825>you <00:39:30.025>won't <00:39:30.225>get <00:39:30.424>it <00:39:30.625>created.

739
00:39:32.595 --> 00:39:34.005
<00:39:32.595>That, <00:39:33.229>I <00:39:33.864>think

740
00:39:34.005 --> 00:39:36.325
<00:39:34.005>that <00:39:34.205>doesn't <00:39:34.405>mean <00:39:34.605>you <00:39:34.805>cannot <00:39:35.005>create <00:39:35.205>it <00:39:35.405>yourself.

741
00:39:36.605 --> 00:39:38.405
<00:39:36.605>I <00:39:36.805>can <00:39:37.005>just <00:39:37.205>try <00:39:37.405>it <00:39:37.605>out <00:39:37.805>really <00:39:38.005>quickly.

742
00:39:54.025 --> 00:39:55.045
<00:39:54.025>Oh, <00:39:54.331>just <00:39:54.637>a <00:39:54.943>sec.

743
00:39:56.915 --> 00:39:59.405
<00:39:56.915>Yeah, <00:39:57.070>just <00:39:57.226>take <00:39:57.381>your <00:39:57.537>time. <00:39:57.692>We <00:39:57.848>have <00:39:58.003>plenty <00:39:58.159>of <00:39:58.315>it,

744
00:40:05.065 --> 00:40:08.765
<00:40:05.065>So <00:40:05.220>it's <00:40:05.376>seems <00:40:05.531>to <00:40:05.687>be <00:40:05.842>working <00:40:05.998>fine <00:40:06.153>when <00:40:06.309>I <00:40:06.465>edit.

745
00:40:09.305 --> 00:40:10.305
Uh,

746
00:40:29.665 --> 00:40:30.665
<00:40:29.665>Okay. <00:40:29.845>You <00:40:30.025>are <00:40:30.205>also <00:40:30.384>in <00:40:30.565>the

747
00:40:30.665 --> 00:40:32.395
<00:40:30.665>chat. <00:40:30.898>People <00:40:31.131>are <00:40:31.365>saying <00:40:31.598>yes, <00:40:31.831>in <00:40:32.065>records,

748
00:40:32.655 --> 00:40:34.835
<00:40:32.655>you <00:40:32.888>can <00:40:33.121>add <00:40:33.355>additional <00:40:33.588>constructors <00:40:33.821>and <00:40:34.055>you

749
00:40:34.835 --> 00:40:36.075
<00:40:34.835>Can <00:40:35.393>ally <00:40:35.951>Contact

750
00:40:36.475 --> 00:40:37.995
<00:40:36.475>Constructors, <00:40:36.931>pretty <00:40:37.386>much <00:40:37.843>everything,

751
00:40:37.995 --> 00:40:41.635
<00:40:37.995>everything <00:40:38.150>you <00:40:38.306>want <00:40:38.461>you <00:40:38.617>can, <00:40:38.772>uh, <00:40:38.928>add <00:40:39.083>in <00:40:39.239>the <00:40:39.395>constructor.

752
00:40:41.905 --> 00:40:44.995
<00:40:41.905>It's <00:40:42.060>just <00:40:42.216>what <00:40:42.371>you <00:40:42.527>get <00:40:42.682>out <00:40:42.838>of <00:40:42.993>the <00:40:43.149>box <00:40:43.305>generated.

753
00:40:44.995 --> 00:40:46.395
<00:40:44.995>That's, <00:40:45.247>that's <00:40:45.499>the <00:40:45.750>point <00:40:46.003>behind <00:40:46.255>records,

754
00:40:46.615 --> 00:40:48.955
<00:40:46.615>but <00:40:46.848>even <00:40:47.081>the <00:40:47.314>things <00:40:47.548>that <00:40:47.781>are <00:40:48.015>generated,

755
00:40:48.975 --> 00:40:50.115
<00:40:48.975>you <00:40:49.317>can <00:40:49.658>override <00:40:50.000>them.

756
00:40:50.215 --> 00:40:53.795
<00:40:50.215>So <00:40:50.390>even <00:40:50.565>if <00:40:50.740>there <00:40:50.915>is <00:40:51.090>a <00:40:51.265>two <00:40:51.440>argument <00:40:51.615>constructor,

757
00:40:53.895 --> 00:40:55.195
<00:40:53.895>you <00:40:54.129>can <00:40:54.363>still <00:40:54.597>override <00:40:54.831>it <00:40:55.065>and,

758
00:40:55.335 --> 00:40:57.035
<00:40:55.335>and <00:40:55.535>provide <00:40:55.735>a <00:40:55.935>different <00:40:56.135>I <00:40:56.335>limitation <00:40:56.535>of <00:40:56.735>it,

759
00:40:57.415 --> 00:40:59.915
<00:40:57.415>and <00:40:57.695>you <00:40:57.975>can <00:40:58.255>provide <00:40:58.535>constructors <00:40:58.815>methods

760
00:41:00.015 --> 00:41:02.355
<00:41:00.015>and <00:41:00.170>everything, <00:41:00.326>uh, <00:41:00.481>else <00:41:00.637>you <00:41:00.792>want <00:41:00.948>to <00:41:01.103>add <00:41:01.259>to <00:41:01.415>it.

761
00:41:03.665 --> 00:41:08.395
<00:41:03.665>Okay. <00:41:03.945>Then, <00:41:04.225>um, <00:41:04.505>OMED <00:41:04.785>is, <00:41:05.065>uh,

762
00:41:08.655 --> 00:41:10.315
<00:41:08.655>saying, <00:41:09.355>asking, <00:41:10.055>um,

763
00:41:10.875 --> 00:41:13.275
<00:41:10.875>I <00:41:11.155>would <00:41:11.435>remove <00:41:11.715>completely <00:41:11.995>checked <00:41:12.275>exceptions.

764
00:41:13.715 --> 00:41:16.115
<00:41:13.715>I <00:41:13.890>would <00:41:14.065>add <00:41:14.240>a <00:41:14.415>compiler <00:41:14.590>argument <00:41:14.765>to <00:41:14.940>disable <00:41:15.115>it.

765
00:41:16.115 --> 00:41:17.115
<00:41:16.115>What <00:41:16.415>do <00:41:16.714>you <00:41:17.015>think

766
00:41:19.255 --> 00:41:21.715
<00:41:19.255>To <00:41:19.535>completely <00:41:19.815>remove <00:41:20.095>the <00:41:20.375>checked <00:41:20.655>exceptions?

767
00:41:24.095 --> 00:41:25.115
<00:41:24.095>Uh, <00:41:24.401>I <00:41:24.707>don't <00:41:25.013>know.

768
00:41:25.145 --> 00:41:28.035
<00:41:25.145>It's, <00:41:25.495>it's <00:41:25.845>interesting, <00:41:26.195>interesting <00:41:26.545>opinion.

769
00:41:28.335 --> 00:41:32.195
<00:41:28.335>Um, <00:41:28.451>I <00:41:28.568>mean, <00:41:28.685>it's <00:41:28.801>one <00:41:28.918>of <00:41:29.035>the, <00:41:29.151>one <00:41:29.268>of <00:41:29.385>the <00:41:29.501>core <00:41:29.618>things <00:41:29.735>in,

770
00:41:32.575 --> 00:41:36.885
<00:41:32.575>in <00:41:32.714>Java, <00:41:32.855>it's <00:41:32.995>something <00:41:33.134>that <00:41:33.274>I <00:41:33.415>am <00:41:33.555>so <00:41:33.694>used <00:41:33.835>to, <00:41:33.975>um,

771
00:41:37.275 --> 00:41:40.125
<00:41:37.275>that <00:41:37.415>it <00:41:37.555>would <00:41:37.695>be <00:41:37.835>really <00:41:37.975>weird <00:41:38.115>if, <00:41:38.255>if, <00:41:38.395>if <00:41:38.535>this <00:41:38.675>wasn't,

772
00:41:40.185 --> 00:41:41.645
<00:41:40.185>um, <00:41:40.513>part <00:41:40.842>of <00:41:41.170>the <00:41:41.499>language.

773
00:41:41.705 --> 00:41:46.525
<00:41:41.705>But <00:41:41.832>I, <00:41:41.959>I <00:41:42.086>do <00:41:42.214>agree <00:41:42.341>it's <00:41:42.468>sometimes <00:41:42.595>a <00:41:42.723>bit, <00:41:42.850>um, <00:41:42.977>cumbersome <00:41:43.105>to,

774
00:41:46.585 --> 00:41:49.605
<00:41:46.585>to, <00:41:46.740>to, <00:41:46.896>to <00:41:47.051>have <00:41:47.207>to <00:41:47.362>deal <00:41:47.518>with <00:41:47.673>all <00:41:47.829>those, <00:41:47.985>um,

775
00:41:49.935 --> 00:41:51.365
<00:41:49.935>exceptions <00:41:51.221>explicitly.

776
00:41:51.705 --> 00:41:55.125
<00:41:51.705>So, <00:41:51.880>yeah, <00:41:52.055>I, <00:41:52.230>I'm <00:41:52.404>not <00:41:52.580>really <00:41:52.755>sure <00:41:52.930>what <00:41:53.105>to,

777
00:41:55.995 --> 00:41:57.245
<00:41:55.995>what <00:41:56.220>to <00:41:56.444>answer <00:41:56.670>on <00:41:56.895>this <00:41:57.120>one.

778
00:41:57.325 --> 00:41:59.445
<00:41:57.325>I <00:41:57.500>think <00:41:57.674>this <00:41:57.850>is <00:41:58.024>maybe <00:41:58.200>a <00:41:58.375>question <00:41:58.549>for <00:41:58.725>one

779
00:41:59.445 --> 00:42:04.005
<00:41:59.445>of <00:41:59.585>the <00:41:59.725>Java <00:41:59.865>language, <00:42:00.005>um, <00:42:00.145>uh, <00:42:00.285>the, <00:42:00.425>the <00:42:00.565>team <00:42:00.705>that's, <00:42:00.845>uh,

780
00:42:04.005 --> 00:42:05.605
<00:42:04.005>providing <00:42:04.471>the <00:42:04.938>API <00:42:05.405>implementation.

781
00:42:06.035 --> 00:42:08.245
<00:42:06.035>Fair <00:42:06.315>enough. <00:42:06.595>Um, <00:42:06.875>then, <00:42:07.154>I <00:42:07.435>mean,

782
00:42:08.245 --> 00:42:10.565
<00:42:08.245>there <00:42:08.444>are <00:42:08.645>some <00:42:08.845>comments <00:42:09.045>about <00:42:09.245>Coplin <00:42:09.444>as <00:42:09.645>well,

783
00:42:10.565 --> 00:42:11.565
<00:42:10.565>and <00:42:10.790>Divan <00:42:11.015>is <00:42:11.240>also <00:42:11.465>saying,

784
00:42:11.565 --> 00:42:13.805
<00:42:11.565>do <00:42:11.740>you <00:42:11.915>have <00:42:12.090>the <00:42:12.265>feeling <00:42:12.440>like <00:42:12.615>he <00:42:12.790>has, <00:42:12.965>uh,

785
00:42:13.805 --> 00:42:16.645
<00:42:13.805>that <00:42:13.960>modern <00:42:14.116>Java <00:42:14.271>is <00:42:14.427>trying <00:42:14.582>to <00:42:14.738>keep <00:42:14.893>up <00:42:15.049>with <00:42:15.205>Kotlin

786
00:42:16.665 --> 00:42:20.605
<00:42:16.665>and <00:42:16.865>Groovy, <00:42:17.065>um, <00:42:17.265>which <00:42:17.465>are <00:42:17.665>obviously, <00:42:17.865>uh, <00:42:18.065>connected.

787
00:42:20.745 --> 00:42:22.805
<00:42:20.745>So, <00:42:20.944>so <00:42:21.145>what's, <00:42:21.345>what's <00:42:21.545>your <00:42:21.745>take <00:42:21.944>on <00:42:22.145>that?

788
00:42:24.105 --> 00:42:26.845
<00:42:24.105>Uh, <00:42:24.260>basically <00:42:24.416>modern <00:42:24.571>Java <00:42:24.727>tries <00:42:24.882>to <00:42:25.038>keep <00:42:25.193>up <00:42:25.349>with, <00:42:25.505>with,

789
00:42:27.385 --> 00:42:31.205
<00:42:27.385>you <00:42:27.540>know, <00:42:27.696>any <00:42:27.851>cool <00:42:28.007>feature <00:42:28.162>that's <00:42:28.318>that's <00:42:28.473>out <00:42:28.629>there <00:42:28.785>in,

790
00:42:31.225 --> 00:42:33.925
<00:42:31.225>in <00:42:31.380>any, <00:42:31.536>any <00:42:31.691>other <00:42:31.847>language, <00:42:32.002>right? <00:42:32.158>So, <00:42:32.313>um, <00:42:32.469>that's <00:42:32.625>a

791
00:42:33.925 --> 00:42:34.925
<00:42:33.925>Good <00:42:34.150>answer <00:42:34.375>on <00:42:34.600>it. <00:42:34.825>Yeah,

792
00:42:34.925 --> 00:42:38.525
<00:42:34.925>I, <00:42:35.052>it's <00:42:35.179>just, <00:42:35.306>I <00:42:35.434>would <00:42:35.561>say <00:42:35.688>it <00:42:35.815>just <00:42:35.943>takes <00:42:36.070>Java <00:42:36.197>a <00:42:36.325>bit

793
00:42:38.525 --> 00:42:41.125
<00:42:38.525>of <00:42:38.700>time <00:42:38.875>to, <00:42:39.050>you <00:42:39.225>know, <00:42:39.400>um, <00:42:39.575>catch <00:42:39.750>up <00:42:39.925>with,

794
00:42:41.125 --> 00:42:42.125
<00:42:41.125>with <00:42:41.425>some <00:42:41.725>new <00:42:42.025>features.

795
00:42:42.665 --> 00:42:45.925
<00:42:42.665>Um, <00:42:42.781>but <00:42:42.898>I <00:42:43.015>also <00:42:43.131>think <00:42:43.248>that's <00:42:43.365>one <00:42:43.481>of <00:42:43.598>the <00:42:43.715>good <00:42:43.831>things <00:42:43.948>in <00:42:44.065>Java

796
00:42:45.925 --> 00:42:49.685
<00:42:45.925>because <00:42:46.100>the, <00:42:46.275>the <00:42:46.450>things <00:42:46.625>really <00:42:46.800>get <00:42:46.975>into <00:42:47.150>a <00:42:47.325>language

797
00:42:49.685 --> 00:42:50.765
<00:42:49.685>once <00:42:50.009>they <00:42:50.333>are <00:42:50.656>stable.

798
00:42:51.065 --> 00:42:53.705
<00:42:51.065>And <00:42:51.415>also <00:42:51.765>taking <00:42:52.115>special <00:42:52.465>care

799
00:42:53.705 --> 00:42:56.785
<00:42:53.705>of <00:42:53.904>backwards <00:42:54.105>compatibility <00:42:54.305>is <00:42:54.505>one <00:42:54.705>of <00:42:54.904>the <00:42:55.105>really,

800
00:42:56.785 --> 00:42:58.145
<00:42:56.785>really <00:42:57.091>great <00:42:57.397>features <00:42:57.703>of <00:42:58.009>Java.

801
00:42:58.145 --> 00:43:00.145
<00:42:58.145>So <00:42:58.378>we <00:42:58.611>never <00:42:58.845>struggle <00:42:59.078>with <00:42:59.311>upgrading <00:42:59.545>to,

802
00:43:00.205 --> 00:43:01.305
<00:43:00.205>to <00:43:00.370>new <00:43:00.535>versions <00:43:00.700>most <00:43:00.865>of <00:43:01.029>the <00:43:01.194>time.

803
00:43:01.305 --> 00:43:02.305
Mm-hmm.

804
00:43:02.845 --> 00:43:06.345
<00:43:02.845>Um, <00:43:02.984>Asan <00:43:03.125>also <00:43:03.265>has <00:43:03.404>a <00:43:03.544>take <00:43:03.685>on, <00:43:03.825>on <00:43:03.964>the <00:43:04.105>checked <00:43:04.245>exceptions.

805
00:43:06.375 --> 00:43:08.065
<00:43:06.375>He's <00:43:06.655>saying <00:43:06.935>checked <00:43:07.215>exceptions <00:43:07.495>are <00:43:07.775>made

806
00:43:08.065 --> 00:43:11.105
<00:43:08.065>to <00:43:08.220>help <00:43:08.376>a <00:43:08.531>programmer <00:43:08.687>do <00:43:08.842>the <00:43:08.998>things <00:43:09.153>properly <00:43:09.309>and <00:43:09.465>nicely,

807
00:43:11.525 --> 00:43:13.385
<00:43:11.525>and <00:43:11.700>if <00:43:11.875>you <00:43:12.050>don't <00:43:12.225>need <00:43:12.400>something <00:43:12.575>to <00:43:12.750>be <00:43:12.925>checked,

808
00:43:13.495 --> 00:43:16.305
<00:43:13.495>just <00:43:13.694>make <00:43:13.895>it <00:43:14.095>a <00:43:14.295>subclass <00:43:14.495>of <00:43:14.694>runtime <00:43:14.895>exception.

809
00:43:19.125 --> 00:43:20.145
<00:43:19.125>Yes, <00:43:19.431>of <00:43:19.737>course. <00:43:20.043>Yeah.

810
00:43:21.455 --> 00:43:26.225
<00:43:21.455>Okay. <00:43:21.571>Then, <00:43:21.688>uh, <00:43:21.805>as <00:43:21.921>you <00:43:22.038>said, <00:43:22.154>like, <00:43:22.271>uh, <00:43:22.388>in <00:43:22.505>Java <00:43:22.621>17 <00:43:22.738>LTS, <00:43:22.855>um,

811
00:43:27.205 --> 00:43:29.945
<00:43:27.205>as <00:43:27.360>you, <00:43:27.516>as <00:43:27.671>you <00:43:27.827>said, <00:43:27.982>there <00:43:28.138>is <00:43:28.293>like <00:43:28.449>nothing <00:43:28.605>groundbreaking.

812
00:43:30.325 --> 00:43:33.065
<00:43:30.325>Um, <00:43:30.500>what <00:43:30.674>do <00:43:30.850>you <00:43:31.024>expect <00:43:31.200>from <00:43:31.375>the <00:43:31.549>upcoming <00:43:31.725>versions?

813
00:43:33.095 --> 00:43:35.825
<00:43:33.095>Like <00:43:33.234>what, <00:43:33.375>what <00:43:33.515>would <00:43:33.654>be <00:43:33.794>some <00:43:33.935>nice <00:43:34.075>things <00:43:34.214>you <00:43:34.355>would <00:43:34.495>like

814
00:43:35.825 --> 00:43:38.345
<00:43:35.825>to <00:43:36.174>be, <00:43:36.524>uh, <00:43:36.875>released, <00:43:37.225>implemented?

815
00:43:38.495 --> 00:43:40.505
<00:43:38.495>What <00:43:38.694>would, <00:43:38.895>what <00:43:39.095>would <00:43:39.295>you <00:43:39.495>consider <00:43:39.694>a <00:43:39.895>bit

816
00:43:41.015 --> 00:43:42.145
<00:43:41.015>more <00:43:42.032>groundbreaking?

817
00:43:45.305 --> 00:43:48.585
<00:43:45.305>Hmm. <00:43:45.771>That's, <00:43:46.238>uh, <00:43:46.705>I,

818
00:43:48.745 --> 00:43:51.025
<00:43:48.745>I <00:43:48.944>guess <00:43:49.145>there <00:43:49.345>will <00:43:49.545>be <00:43:49.745>things <00:43:49.944>coming <00:43:50.145>from,

819
00:43:51.255 --> 00:43:52.305
<00:43:51.255>from <00:43:51.727>other <00:43:52.200>languages.

820
00:43:52.505 --> 00:43:56.545
<00:43:52.505>I <00:43:52.680>am <00:43:52.855>actually <00:43:53.030>not <00:43:53.205>that <00:43:53.380>into, <00:43:53.555>um, <00:43:53.730>any, <00:43:53.905>any

821
00:43:56.545 --> 00:43:58.185
<00:43:56.545>of <00:43:56.895>the <00:43:57.245>new <00:43:57.595>hype <00:43:57.945>languages.

822
00:43:58.255 --> 00:44:01.465
<00:43:58.255>I've <00:43:58.410>mostly <00:43:58.566>been <00:43:58.721>working <00:43:58.877>with <00:43:59.032>Java <00:43:59.188>all <00:43:59.343>my <00:43:59.499>career, <00:43:59.655>uh,

823
00:44:01.485 --> 00:44:03.105
<00:44:01.485>but <00:44:01.685>things <00:44:01.885>are <00:44:02.085>coming <00:44:02.285>up <00:44:02.485>all <00:44:02.685>the <00:44:02.885>time.

824
00:44:03.445 --> 00:44:06.345
<00:44:03.445>Uh, <00:44:03.600>maybe <00:44:03.756>I <00:44:03.911>can <00:44:04.067>mention <00:44:04.222>one <00:44:04.378>of <00:44:04.533>the <00:44:04.689>things, <00:44:04.845>uh,

825
00:44:07.695 --> 00:44:11.425
<00:44:07.695>that <00:44:07.835>can <00:44:07.975>be <00:44:08.115>improved <00:44:08.255>in <00:44:08.395>Java, <00:44:08.535>that's <00:44:08.675>maybe <00:44:08.815>how <00:44:08.955>you, <00:44:09.095>uh,

826
00:44:11.445 --> 00:44:12.625
<00:44:11.445>create <00:44:11.976>utility <00:44:12.507>classes.

827
00:44:12.805 --> 00:44:15.385
<00:44:12.805>So <00:44:12.932>there <00:44:13.059>is <00:44:13.186>no <00:44:13.314>way <00:44:13.441>to <00:44:13.568>do <00:44:13.695>it, <00:44:13.823>um, <00:44:13.950>at <00:44:14.077>the <00:44:14.205>moment.

828
00:44:15.925 --> 00:44:19.785
<00:44:15.925>And, <00:44:16.052>uh, <00:44:16.179>when <00:44:16.306>in <00:44:16.434>cases <00:44:16.561>like <00:44:16.688>this, <00:44:16.815>when <00:44:16.943>something <00:44:17.070>is <00:44:17.197>not <00:44:17.325>able

829
00:44:19.785 --> 00:44:21.985
<00:44:19.785>to <00:44:19.940>to <00:44:20.096>be <00:44:20.251>done, <00:44:20.407>there's <00:44:20.562>always <00:44:20.718>some <00:44:20.873>kind <00:44:21.029>of <00:44:21.185>library

830
00:44:22.085 --> 00:44:23.865
<00:44:22.085>or <00:44:22.285>something <00:44:22.485>that <00:44:22.685>gives <00:44:22.885>you <00:44:23.085>a <00:44:23.285>solution <00:44:23.485>and,

831
00:44:23.885 --> 00:44:26.385
<00:44:23.885>and <00:44:24.060>that's, <00:44:24.235>uh, <00:44:24.410>if <00:44:24.585>you <00:44:24.760>check <00:44:24.935>the <00:44:25.110>latest <00:44:25.285>version

832
00:44:26.385 --> 00:44:30.455
<00:44:26.385>of <00:44:26.540>Long <00:44:26.696>Book, <00:44:26.851>it <00:44:27.007>has <00:44:27.162>a <00:44:27.318>utility <00:44:27.473>class, <00:44:27.629>um, <00:44:27.785>annotation,

833
00:44:30.545 --> 00:44:34.125
<00:44:30.545>which <00:44:30.778>actually <00:44:31.011>enables <00:44:31.245>you, <00:44:31.478>which <00:44:31.711>actually <00:44:31.945>generates,

834
00:44:34.125 --> 00:44:35.405
<00:44:34.125>you <00:44:34.509>know, <00:44:34.893>private <00:44:35.277>constructors

835
00:44:35.465 --> 00:44:37.605
<00:44:35.465>and <00:44:35.698>doesn't <00:44:35.931>allow <00:44:36.165>you <00:44:36.398>to <00:44:36.631>add <00:44:36.865>any

836
00:44:38.405 --> 00:44:39.845
<00:44:38.405>specific <00:44:38.664>constructors <00:44:38.923>and <00:44:39.182>stuff <00:44:39.441>like <00:44:39.701>this.

837
00:44:39.945 --> 00:44:43.085
<00:44:39.945>So, <00:44:40.085>um, <00:44:40.225>maybe <00:44:40.365>these <00:44:40.505>are, <00:44:40.645>these <00:44:40.785>are <00:44:40.925>some <00:44:41.065>things <00:44:41.205>that <00:44:41.345>will,

838
00:44:43.145 --> 00:44:44.645
<00:44:43.145>um, <00:44:43.415>come <00:44:43.685>up <00:44:43.955>in <00:44:44.225>the <00:44:44.495>future.

839
00:44:44.865 --> 00:44:46.965
<00:44:44.865>So <00:44:45.040>things <00:44:45.214>that <00:44:45.390>are <00:44:45.564>sold <00:44:45.740>by <00:44:45.915>Long <00:44:46.089>book <00:44:46.265>now

840
00:44:46.965 --> 00:44:51.485
<00:44:46.965>that <00:44:47.081>they <00:44:47.198>be <00:44:47.315>available, <00:44:47.431>um, <00:44:47.548>out <00:44:47.665>the <00:44:47.781>box <00:44:47.898>in, <00:44:48.015>in <00:44:48.131>the <00:44:48.248>job <00:44:48.365>API.

841
00:44:52.865 --> 00:44:57.315
<00:44:52.865>Okay. <00:44:53.004>And, <00:44:53.145>uh, <00:44:53.285>yeah, <00:44:53.424>def <00:44:53.564>someone <00:44:53.705>with <00:44:53.845>a <00:44:53.984>nickname <00:44:54.125>Def, <00:44:54.265>uh,

842
00:44:57.385 --> 00:44:58.435
<00:44:57.385>also <00:44:57.574>has <00:44:57.763>a <00:44:57.952>take <00:44:58.141>on <00:44:58.330>that.

843
00:44:58.435 --> 00:45:00.595
<00:44:58.435>Uh, <00:44:58.590>wouldn't <00:44:58.746>it <00:44:58.901>be <00:44:59.057>nice <00:44:59.212>to <00:44:59.368>have <00:44:59.523>some <00:44:59.679>added, <00:44:59.835>uh,

844
00:45:00.595 --> 00:45:04.155
<00:45:00.595>length <00:45:00.770>feature <00:45:00.944>to <00:45:01.120>handle <00:45:01.294>exceptions <00:45:01.470>in <00:45:01.645>a <00:45:01.819>more <00:45:01.995>functional

845
00:45:04.365 --> 00:45:08.355
<00:45:04.365>style <00:45:04.598>instead <00:45:04.831>of <00:45:05.064>having <00:45:05.298>dedicated <00:45:05.531>block <00:45:05.765>keywords?

846
00:45:09.765 --> 00:45:12.095
<00:45:09.765>Like <00:45:09.940>try <00:45:10.115>catch <00:45:10.290>finally <00:45:10.464>as <00:45:10.640>you <00:45:10.815>have <00:45:10.990>it <00:45:11.165>now,

847
00:45:12.115 --> 00:45:16.515
<00:45:12.115>but <00:45:12.348>yeah, <00:45:12.581>it <00:45:12.814>could <00:45:13.048>be <00:45:13.281>also <00:45:13.515>something,

848
00:45:17.095 --> 00:45:18.315
<00:45:17.095>um, <00:45:18.193>good.

849
00:45:18.315 --> 00:45:20.435
<00:45:18.315>Definitely. <00:45:18.548>I <00:45:18.781>mean, <00:45:19.015>JS <00:45:19.248>js <00:45:19.481>are <00:45:19.715>coming,

850
00:45:20.575 --> 00:45:21.755
<00:45:20.575>coming <00:45:20.840>out <00:45:21.106>all <00:45:21.371>the <00:45:21.637>time.

851
00:45:22.095 --> 00:45:23.275
<00:45:22.095>Uh, <00:45:23.157>so,

852
00:45:23.575 --> 00:45:25.275
<00:45:23.575>and <00:45:23.924>there's <00:45:24.274>always, <00:45:24.625>uh, <00:45:24.975>yeah,

853
00:45:25.275 --> 00:45:28.035
<00:45:25.275>really <00:45:25.430>interesting <00:45:25.586>things <00:45:25.741>in <00:45:25.897>there <00:45:26.052>you <00:45:26.208>can <00:45:26.363>also <00:45:26.519>check <00:45:26.675>out,

854
00:45:28.175 --> 00:45:30.915
<00:45:28.175>um, <00:45:28.350>and <00:45:28.525>maybe <00:45:28.700>even <00:45:28.875>create <00:45:29.050>your <00:45:29.225>own, <00:45:29.400>uh, <00:45:29.575>candidates

855
00:45:31.015 --> 00:45:33.835
<00:45:31.015>for <00:45:31.214>the <00:45:31.415>next, <00:45:31.615>uh, <00:45:31.815>improvements <00:45:32.015>in, <00:45:32.214>in <00:45:32.415>Java.

856
00:45:34.015 --> 00:45:37.355
<00:45:34.015>Mm-hmm. <00:45:34.248>So <00:45:34.481>the <00:45:34.714>community's <00:45:34.948>open <00:45:35.181>to <00:45:35.415>suggestions

857
00:45:37.455 --> 00:45:39.275
<00:45:37.455>to <00:45:37.735>improvements <00:45:38.015>of <00:45:38.295>the <00:45:38.575>language <00:45:38.855>itself.

858
00:45:40.515 --> 00:45:41.675
<00:45:40.515>Absolutely. <00:45:41.037>And, <00:45:41.559>um,

859
00:45:41.735 --> 00:45:44.115
<00:45:41.735>and <00:45:41.910>there, <00:45:42.085>there <00:45:42.260>is <00:45:42.435>one <00:45:42.610>question <00:45:42.785>from, <00:45:42.960>from <00:45:43.135>anonymous.

860
00:45:44.375 --> 00:45:46.955
<00:45:44.375>Um, <00:45:44.550>if <00:45:44.725>you <00:45:44.900>think <00:45:45.075>that <00:45:45.250>we'll <00:45:45.425>have <00:45:45.600>some <00:45:45.775>feature

861
00:45:47.475 --> 00:45:48.795
<00:45:47.475>overloading <00:45:47.772>Java <00:45:48.069>in <00:45:48.366>the <00:45:48.663>future?

862
00:45:49.455 --> 00:45:50.715
<00:45:49.455>Um, <00:45:49.738>I <00:45:50.022>don't <00:45:50.305>think <00:45:50.589>so.

863
00:45:50.875 --> 00:45:53.635
<00:45:50.875>I <00:45:51.155>mean, <00:45:51.435>it's <00:45:51.715>a <00:45:51.995>big <00:45:52.275>language,

864
00:45:53.655 --> 00:45:55.835
<00:45:53.655>but <00:45:53.810>yeah, <00:45:53.966>maybe <00:45:54.121>you <00:45:54.277>want <00:45:54.432>to <00:45:54.588>say <00:45:54.743>something <00:45:54.899>about <00:45:55.055>that.

865
00:45:56.695 --> 00:45:58.595
<00:45:56.695>I'm <00:45:56.870>not <00:45:57.045>sure. <00:45:57.220>How <00:45:57.395>do <00:45:57.570>you <00:45:57.745>mean <00:45:57.920>overloading <00:45:58.095>Java?

866
00:45:59.185 --> 00:46:02.035
<00:45:59.185>Yeah, <00:45:59.360>that's <00:45:59.535>maybe <00:45:59.710>if, <00:45:59.884>if <00:46:00.060>the <00:46:00.235>one <00:46:00.410>who, <00:46:00.585>who

867
00:46:02.605 --> 00:46:04.635
<00:46:02.605>asked <00:46:02.838>the <00:46:03.071>question, <00:46:03.305>you <00:46:03.538>can <00:46:03.771>specify <00:46:04.005>it,

868
00:46:05.415 --> 00:46:09.675
<00:46:05.415>but <00:46:05.542>uh, <00:46:05.669>yeah, <00:46:05.796>then <00:46:05.924>let <00:46:06.051>me <00:46:06.178>see <00:46:06.305>if <00:46:06.433>there <00:46:06.560>is <00:46:06.687>something <00:46:06.815>else,

869
00:46:10.335 --> 00:46:12.075
<00:46:10.335>uh, <00:46:10.685>in <00:46:11.035>the <00:46:11.385>comments <00:46:11.735>maybe.

870
00:46:14.895 --> 00:46:15.115
So

871
00:46:19.835 --> 00:46:24.325
<00:46:19.835>yeah, <00:46:19.975>I <00:46:20.115>think <00:46:20.255>that <00:46:20.395>was <00:46:20.535>it <00:46:20.675>with <00:46:20.815>the <00:46:20.955>questions <00:46:21.095>for <00:46:21.235>today.

872
00:46:24.865 --> 00:46:28.205
<00:46:24.865>Um, <00:46:25.145>so, <00:46:25.424>uh, <00:46:25.705>thanks <00:46:25.984>again, <00:46:26.265>Daniel.

873
00:46:28.305 --> 00:46:29.525
<00:46:28.305>It <00:46:28.524>was <00:46:28.744>really <00:46:28.963>a <00:46:29.183>good <00:46:29.403>overview.

874
00:46:29.545 --> 00:46:31.685
<00:46:29.545>Is <00:46:29.720>there <00:46:29.895>anything <00:46:30.070>else <00:46:30.245>you <00:46:30.420>want <00:46:30.595>to <00:46:30.770>share, <00:46:30.945>uh,

875
00:46:31.685 --> 00:46:32.885
<00:46:31.685>with <00:46:32.045>people <00:46:32.405>out <00:46:32.765>there?

876
00:46:33.705 --> 00:46:35.845
<00:46:33.705>Uh, <00:46:33.860>no <00:46:34.016>thank <00:46:34.171>you. <00:46:34.327>I'm <00:46:34.482>just <00:46:34.638>happy <00:46:34.793>I <00:46:34.949>managed <00:46:35.105>to,

877
00:46:35.905 --> 00:46:37.205
<00:46:35.905>to <00:46:36.197>talk <00:46:36.490>for <00:46:36.782>45 <00:46:37.075>minutes.

878
00:46:37.385 --> 00:46:38.885
<00:46:37.385>I'm, <00:46:37.655>uh, <00:46:37.925>out, <00:46:38.195>out <00:46:38.465>of <00:46:38.735>breath.

879
00:46:39.145 --> 00:46:43.325
<00:46:39.145>Uh, <00:46:39.300>so, <00:46:39.456>uh, <00:46:39.611>yeah, <00:46:39.767>then <00:46:39.922>yeah, <00:46:40.078>I'm <00:46:40.233>really <00:46:40.389>happy, <00:46:40.545>uh,

880
00:46:44.105 --> 00:46:47.685
<00:46:44.105>for <00:46:44.232>a <00:46:44.359>really <00:46:44.486>ra <00:46:44.614>large, <00:46:44.741>uh, <00:46:44.868>number <00:46:44.995>of <00:46:45.123>questions <00:46:45.250>that <00:46:45.377>we <00:46:45.505>got.

881
00:46:47.945 --> 00:46:49.125
<00:46:47.945>So, <00:46:48.299>and <00:46:48.653>really <00:46:49.007>happy

882
00:46:49.225 --> 00:46:51.765
<00:46:49.225>to <00:46:49.380>participated <00:46:49.536>in <00:46:49.691>a <00:46:49.847>Java <00:46:50.002>Day <00:46:50.158>for <00:46:50.313>the <00:46:50.469>second <00:46:50.625>time.

883
00:46:52.415 --> 00:46:54.035
<00:46:52.415>Uh, <00:46:52.590>thank <00:46:52.765>you <00:46:52.940>Daniel, <00:46:53.115>and <00:46:53.290>thank <00:46:53.465>you <00:46:53.640>so <00:46:53.815>much

884
00:46:54.035 --> 00:46:56.635
<00:46:54.035>for <00:46:54.174>joining <00:46:54.315>us <00:46:54.455>despite <00:46:54.595>that, <00:46:54.734>uh, <00:46:54.875>you <00:46:55.015>don't <00:46:55.154>feel <00:46:55.295>so <00:46:55.435>well.

885
00:46:56.975 --> 00:47:00.235
<00:46:56.975>But, <00:46:57.130>uh, <00:46:57.286>yeah, <00:46:57.441>hope <00:46:57.597>to <00:46:57.752>see <00:46:57.908>you <00:46:58.063>soon, <00:46:58.219>uh, <00:46:58.375>again,

886
00:47:00.695 --> 00:47:01.875
<00:47:00.695>uh, <00:47:01.049>at <00:47:01.403>another <00:47:01.757>event.

887
00:47:02.295 --> 00:47:05.675
<00:47:02.295>And, <00:47:02.450>uh, <00:47:02.606>yeah, <00:47:02.761>take <00:47:02.917>some <00:47:03.072>breaths <00:47:03.228>and <00:47:03.383>get <00:47:03.539>real <00:47:03.695>soon.

888
00:47:05.675 --> 00:47:06.675
<00:47:05.675>Thanks <00:47:05.975>so <00:47:06.275>much <00:47:06.575>again.

889
00:47:07.015 --> 00:47:08.955
<00:47:07.015>Thanks, <00:47:07.214>ed. <00:47:07.415>Thanks <00:47:07.615>everyone. <00:47:07.815>Take <00:47:08.015>care <00:47:08.214>of <00:47:08.415>your.