Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Practical Refactoring to Modern Java
0. Introduction
0. Introduction (5:40)
0.1. Exercise Structure Overview (3:43)
0.2. Resources: Exercises
1. Replace local variable declarations with "var" (Java 10 & 11, JEPs 286 & 323)
1. Replace local variable declarations with "var" (Java 10 & 11, JEPs 286 & 323) (4:33)
1.1. Walkthrough - ModelFieldTypeReader#createFieldTypeCache() (4:09)
1.2. Walkthrough - FormRenderer#renderHeaderRow() (6:44)
2. String.repeat() can be used (Java 11, no JEP)
2. String.repeat() can be used (Java 11, no JEP) (0:31)
2.1. Walkthrough - GenericEntity#writeXmlText() (2:04)
2.2. Walkthrough - UtilTimer#timerString() (2:28)
3. Replace old style switch with switch expressions (Java 14, JEP 361)
3. Replace old style switch with switch expressions (Java 14, JEP 361) (4:27)
3.1. Walkthrough - ComponentLoaderConfig.ComponentDef#of() (1:47)
3.2. Walkthrough - Config#getDefaultLocale() (1:27)
3.3. Walkthrough - SSLUtil#getHostnameVerifier() (2:19)
3.4. Walkthrough - TransactionUtil#getTransactionStateString() (1:59)
3.5. Walkthrough - HtmlWidgetRenderer#beginNamedBorder() (0:48)
4. Replace fragmented Strings with Text Blocks (Java 15, JEP 378)
4. Replace fragmented Strings with Text Blocks (Java 15, JEP 378) (1:45)
4.1. Walkthrough - AfterLoginEvents static initializer (1:28)
4.2. Walkthrough - ScriptUtil#isSafeScript() (2:09)
4.3. Walkthrough - UtilNumber#RULE_SET_EN_US (3:29)
4.4. Walkthrough - UtilNumber#RULE_SET_TH_TH (0:42)
4.5. Walkthrough - UtilNumber#RULE_SET_EN_IN (1:35)
5. Replace simple data classes with records (Java 16, JEP 395)
5. Replace simple data classes with records (Java 16, JEP 395) (1:38)
5.1. Walkthrough - ModelKeyMap (4:50)
5.2. Walkthrough - ConstantFuture (0:38)
5.3. Walkthrough - Converters.PassThruConverter (1:10)
5.4. Walkthrough - DelegatorFactory.DelegatorConfigurable (1:00)
5.5. Walkthrough - GenericMapEntry (0:39)
5.6. Walkthrough - ModelInfo (1:11)
5.7. Walkthrough - ModelViewEntity.ModelMemberEntity (0:27)
5.8. Walkthrough - ModelViewEntity.ModelAliasAll (10:58)
5.9. Walkthrough - ScriptUtil.ProtectedBindings (0:22)
5.10. Walkthrough - ModelService.ModelSericeMapEntry (2:40)
6. Pattern Matching for instanceof (Java 16, JEP 394)
6. Pattern Matching for instanceof (Java 16, JEP 394) (1:58)
6.1. Walkthrough - CoreEvents#getObjectFromServicePath() (0:49)
6.2. Walkthrough - EntityFinderUtil#expandFieldMapToContext() (0:41)
6.3. Walkthrough - GenericMap#equals() (3:10)
6.4. Walkthrough - ModelUtil#isPotentialLocalizedFields() (0:19)
6.5. Walkthrough - FlexibleServletAccessor#equals() (2:19)
6.5.1. Explanation of Ternary-If precendence (2:52)
6.6. Walkthrough - EntityComparisonOperator#validateSql() (0:18)
6.7. Walkthrough - DBCPConnectionFactory#getConnection() (0:32)
6.8. Walkthrough - DebugManagedDataSource#getConnection() (0:15)
7. Tighten up hierarchies with sealed classes (Java 17, JEP 409)
7. Tighten up hierarchies with sealed classes (Java 17, JEP 409) (4:41)
7.1. Walkthrough - ResourceLoader (0:54)
7.2. Walkthrough - AbstractCursorHandler (0:57)
7.2.1. Walkthrough - Fixing bug in code SQLProcessor (3:36)
7.3. Walkthrough - SanitizerCustomPolicy (0:35)
7.4. Walkthrough - Converter (4:51)
7.5. Walkthrough - RenderableFtl (0:52)
7.6. Walkthrough - ModelViewEntity.ComplexAliasMember (0:39)
8. Code Snippets in Java API Documentation (Java 18, JEP 413)
8. Code Snippets in Java API Documentation (Java 18, JEP 413) (1:15)
8.1. Walkthrough - EntityConditionVisitor (3:45)
8.2. Walkthrough - ScriptHelper (2:02)
9. Use sequenced collection method instead (Java 21, JEP 431)
9. Use sequenced collection method instead (Java 21, JEP 431) (2:11)
9.1. Walkthrough - ModelEntity#getOnlyPk() (0:24)
9.2. Walkthrough - ModelEntity#createEoModelMap() (0:56)
9.3. Walkthrough - RequestHandler#getRequestUri() (0:25)
9.4. Walkthrough - TransactionUtil#pushSuspendedTransaction() (0:11)
9.5. Walkthrough - TransactionUtil#popSuspendedTransaction() (0:25)
9.6. Walkthrough - UtilProperties.UtilResourceBundle#getBundle() (0:23)
10. Record Patterns (Java 21, JEP 440)
10. Record Patterns (Java 21, JEP 440) (1:52)
10.1. Walkthrough - ModelKeyMap#equals() (3:00)
10.2. Walkthrough - ModelService.ModelServiceMapEntry#equals() (1:51)
11. Pattern Matching for switch (Java 21, JEP 441)
11. Pattern Matching for switch (Java 21, JEP 441) (1:01)
11.1. Walkthrough - OfbizCurrencyTransform#getInteger() (3:07)
11.2. Walkthrough - OfbizNumberTransform#getNumber() (1:11)
11.3. Walkthrough - Paginator#getListLimits() (5:20)
11.4. Walkthrough - XmlSerializer#serializeSingle() (17:08)
12. Unnamed Variables & Patterns (Java 22, JEP 456)
12. Unnamed Variables & Patterns (Java 22, JEP 456) (5:56)
12.1. Walkthrough - FindServices#createConditionList() (0:29)
12.2. Walkthrough - MapContext#size() (0:49)
12.3. Walkthrough - ServiceDispatcher#registerCallback() (0:13)
12.4. Walkthrough - ModelKeyMap#equals() (1:30)
12.5. Walkthrough - XmlSerializer#serializeSingle() (1:42)
13. Stream Gatherers (Java 24, JEP 485)
13. Stream Gatherers (Java 24, JEP 485) (2:47)
13.1. Walkthrough - ComponentConfig#collectElements() (7:18)
13.2. Walkthrough - ModelService#allowHtmlValidation() (12:07)
14. Flexible Constructor Bodies (Java 25, JEP 513)
14. Flexible Constructor Bodies (Java 25, JEP 513) (9:49)
14.1. Walkthrough - EntityFieldMap constructors (5:50)
14.2. Walkthrough - DateRange constructor (2:44)
15. Compact Source Files and Instance Main Methods (Java 25, JEP 512)
15. Compact Source Files and Instance Main Methods (Java 25, JEP 512) (9:32)
15.1. & 1.5.2. Walkthrough - AdminServerContainer#init() & run() (1:11)
16. Module Import Declarations (Java 25, JEP 511)
16. Module Import Declarations (Java 25, JEP 511) (2:57)
16.1. Walkthrough - ComponentConfig (2:33)
16.2. Walkthrough - SecuredUpload (2:54)
16.3. Walkthrough - ModelService (1:48)
16.4. Walkthrough - UtilHttp (2:02)
17. The End
17. The End (1:12)
9.3. Walkthrough - RequestHandler#getRequestUri()
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock