Skip to content

Commit 275eef8

Browse files
committed
rewrite to use var, instanceof with type test pattern, switch expression
and record
1 parent f8fbb3f commit 275eef8

File tree

113 files changed

+530
-649
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+530
-649
lines changed

src/effectivejava/chapter11/item78/brokenstopthread/StopThread.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ public class StopThread {
77

88
public static void main(String[] args)
99
throws InterruptedException {
10-
Thread backgroundThread = new Thread(() -> {
11-
int i = 0;
10+
var backgroundThread = new Thread(() -> {
11+
var i = 0;
1212
while (!stopRequested)
1313
i++;
1414
});

src/effectivejava/chapter11/item78/fixedstopthread1/StopThread.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ private static synchronized boolean stopRequested() {
1515

1616
public static void main(String[] args)
1717
throws InterruptedException {
18-
Thread backgroundThread = new Thread(() -> {
19-
int i = 0;
18+
var backgroundThread = new Thread(() -> {
19+
var i = 0;
2020
while (!stopRequested())
2121
i++;
2222
});

src/effectivejava/chapter11/item78/fixedstopthread2/StopThread.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ public class StopThread {
77

88
public static void main(String[] args)
99
throws InterruptedException {
10-
Thread backgroundThread = new Thread(() -> {
11-
int i = 0;
10+
var backgroundThread = new Thread(() -> {
11+
var i = 0;
1212
while (!stopRequested)
1313
i++;
1414
});

src/effectivejava/chapter11/item79/ObservableSet.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class ObservableSet<E> extends ForwardingSet<E> {
3939
// }
4040

4141
// Thread-safe observable set with CopyOnWriteArrayList
42-
private final List<SetObserver<E>> observers =
42+
private final CopyOnWriteArrayList<SetObserver<E>> observers =
4343
new CopyOnWriteArrayList<>();
4444

4545
public void addObserver(SetObserver<E> observer) {
@@ -51,20 +51,20 @@ public boolean removeObserver(SetObserver<E> observer) {
5151
}
5252

5353
private void notifyElementAdded(E element) {
54-
for (SetObserver<E> observer : observers)
54+
for (var observer : observers)
5555
observer.added(this, element);
5656
}
5757

5858
@Override public boolean add(E element) {
59-
boolean added = super.add(element);
59+
var added = super.add(element);
6060
if (added)
6161
notifyElementAdded(element);
6262
return added;
6363
}
6464

6565
@Override public boolean addAll(Collection<? extends E> c) {
66-
boolean result = false;
67-
for (E element : c)
66+
var result = false;
67+
for (var element : c)
6868
result |= add(element); // Calls notifyElementAdded
6969
return result;
7070
}

src/effectivejava/chapter11/item79/Test1.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
// Simple test of ObservableSet - Page 318
55
public class Test1 {
66
public static void main(String[] args) {
7-
ObservableSet<Integer> set =
8-
new ObservableSet<>(new HashSet<>());
7+
var set =
8+
new ObservableSet<>(new HashSet<Integer>());
99

1010
set.addObserver((s, e) -> System.out.println(e));
1111

12-
for (int i = 0; i < 100; i++)
12+
for (var i = 0; i < 100; i++)
1313
set.add(i);
1414
}
1515
}

src/effectivejava/chapter11/item79/Test2.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
// More complex test of ObservableSet - Page 318-9
55
public class Test2 {
66
public static void main(String[] args) {
7-
ObservableSet<Integer> set =
8-
new ObservableSet<>(new HashSet<>());
7+
var set =
8+
new ObservableSet<>(new HashSet<Integer>());
99

1010
set.addObserver(new SetObserver<>() {
1111
public void added(ObservableSet<Integer> s, Integer e) {
@@ -15,7 +15,7 @@ public void added(ObservableSet<Integer> s, Integer e) {
1515
}
1616
});
1717

18-
for (int i = 0; i < 100; i++)
18+
for (var i = 0; i < 100; i++)
1919
set.add(i);
2020
}
2121
}

src/effectivejava/chapter11/item79/Test3.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@
77
// Simple test of ObservableSet - Page 319
88
public class Test3 {
99
public static void main(String[] args) {
10-
ObservableSet<Integer> set =
11-
new ObservableSet<>(new HashSet<>());
10+
var set =
11+
new ObservableSet<>(new HashSet<Integer>());
1212

1313
// Observer that uses a background thread needlessly
1414
set.addObserver(new SetObserver<>() {
1515
public void added(ObservableSet<Integer> s, Integer e) {
1616
System.out.println(e);
1717
if (e == 23) {
18-
ExecutorService exec =
19-
Executors.newSingleThreadExecutor();
18+
var exec = Executors.newSingleThreadExecutor();
2019
try {
2120
exec.submit(() -> s.removeObserver(this)).get();
2221
} catch (ExecutionException | InterruptedException ex) {
@@ -28,7 +27,7 @@ public void added(ObservableSet<Integer> s, Integer e) {
2827
}
2928
});
3029

31-
for (int i = 0; i < 100; i++)
30+
for (var i = 0; i < 100; i++)
3231
set.add(i);
3332
}
3433
}

src/effectivejava/chapter11/item81/ConcurrentTimer.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ private ConcurrentTimer() { } // Noninstantiable
77

88
public static long time(Executor executor, int concurrency,
99
Runnable action) throws InterruptedException {
10-
CountDownLatch ready = new CountDownLatch(concurrency);
11-
CountDownLatch start = new CountDownLatch(1);
12-
CountDownLatch done = new CountDownLatch(concurrency);
10+
var ready = new CountDownLatch(concurrency);
11+
var start = new CountDownLatch(1);
12+
var done = new CountDownLatch(concurrency);
1313

14-
for (int i = 0; i < concurrency; i++) {
14+
for (var i = 0; i < concurrency; i++) {
1515
executor.execute(() -> {
1616
ready.countDown(); // Tell timer we're ready
1717
try {
@@ -26,7 +26,7 @@ public static long time(Executor executor, int concurrency,
2626
}
2727

2828
ready.await(); // Wait for all workers to be ready
29-
long startNanos = System.nanoTime();
29+
var startNanos = System.nanoTime();
3030
start.countDown(); // And they're off!
3131
done.await(); // Wait for all workers to finish
3232
return System.nanoTime() - startNanos;

src/effectivejava/chapter11/item81/Intern.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ public class Intern {
88
new ConcurrentHashMap<>();
99

1010
// public static String intern(String s) {
11-
// String previousValue = map.putIfAbsent(s, s);
11+
// var previousValue = map.putIfAbsent(s, s);
1212
// return previousValue == null ? s : previousValue;
1313
// }
1414

1515
// Concurrent canonicalizing map atop ConcurrentMap - faster!
1616
public static String intern(String s) {
17-
String result = map.get(s);
17+
var result = map.get(s);
1818
if (result == null) {
1919
result = map.putIfAbsent(s, s);
2020
if (result == null)

src/effectivejava/chapter11/item83/Initialization.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ private static class FieldHolder {
2727

2828
// NOTE: The code for this method in the first printing had a serious error (see errata for details)!
2929
private FieldType getField4() {
30-
FieldType result = field4;
30+
var result = field4;
3131
if (result != null) // First check (no locking)
3232
return result;
3333

@@ -44,7 +44,7 @@ private FieldType getField4() {
4444
private volatile FieldType field5;
4545

4646
private FieldType getField5() {
47-
FieldType result = field5;
47+
var result = field5;
4848
if (result == null)
4949
field5 = result = computeFieldValue();
5050
return result;

0 commit comments

Comments
 (0)