Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/asciidoc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ cp "${ASCIIDOCTOR_PDF_DIR}/data/themes/default-theme.yml" ${CURRENT_PATH}/themes
cp -r -f "${ASCIIDOCTOR_PDF_DIR}/data/fonts/" ${CURRENT_PATH}/

echo "Rendering HTML5..."
asciidoctor -B ${CURRENT_PATH}/ -D ${CURRENT_PATH}/outputs/html/ -o index.html -a ci=ci -a imagesdir="images" -r asciidoctor-diagram index.adoc
asciidoctor -B ${CURRENT_PATH}/ -D ${CURRENT_PATH}/outputs/html/ -o index.html -a ci=ci -a imagesdir="images" -a lang=fr -r asciidoctor-diagram index.adoc

echo "Rendering PDF..."
asciidoctor-pdf -B ${CURRENT_PATH}/ -D ${CURRENT_PATH}/outputs/pdf/ -o index.pdf -a ci=ci -a imagesdir="${CURRENT_PATH}/images" -a scripts@=cjk -a pdf-styledir=${CURRENT_PATH}/themes -a pdf-fontsdir=${CURRENT_PATH}/fonts -r asciidoctor-diagram index.adoc
asciidoctor-pdf -B ${CURRENT_PATH}/ -D ${CURRENT_PATH}/outputs/pdf/ -o index.pdf -a ci=ci -a imagesdir="${CURRENT_PATH}/images" -a lang=fr -a scripts@=cjk -a pdf-styledir=${CURRENT_PATH}/themes -a pdf-fontsdir=${CURRENT_PATH}/fonts -r asciidoctor-diagram index.adoc

echo "Rendering EPUB..."
asciidoctor-epub3 -B ${CURRENT_PATH}/ -D ${CURRENT_PATH}/outputs/epub/ -o index.epub -r asciidoctor-diagram -a ci=ci -a imagesdir="${CURRENT_PATH}/images" index.adoc
asciidoctor-epub3 -B ${CURRENT_PATH}/ -D ${CURRENT_PATH}/outputs/epub/ -o index.epub -r asciidoctor-diagram -a ci=ci -a imagesdir="${CURRENT_PATH}/images" -a lang=fr index.adoc
3 changes: 3 additions & 0 deletions .github/workflows/render.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ jobs:
uses: Analog-inc/asciidoctor-action@v1.2.1
with:
shellcommand: "./.github/workflows/asciidoc.sh"
- name: Copy images for HTML output
run: |
sudo cp -rv images outputs/html
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
Expand Down
24 changes: 23 additions & 1 deletion chapters/chapter-1.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -219,9 +219,31 @@ if (a instanceof ArrayList) {
// ... // <1>
}
----

<1> l’execution entrera dans le bloc si l’objet pointé par la variable `a` est de type `ArrayList` ou d’un sous-type d’ `ArrayList`

Classiquement, tester le type d'une variable est suivi par un *cast* :

[source,java]
----
void callBarkIfPossible(Animal animal) {
if (animal instanceof Dog) {
Dog dog = (Dog) animal; // <1>
dog.bark();
}
}
----
<1> Ce type de *cast* est appelé *downcasting* (passage d'un type parent à un type enfant)

A partir de Java 16 l'opérateur `instanceof` peut prendre une opérande supplémentaire afin d'obtenir directement une variable du type testé :
[source,java]
----
void callBarkIfPossible(Animal animal) {
if (animal instanceof Dog dog) {
dog.bark();
}
}
----

=== Nommage

Le nommage a un intérêt prépondérant dans le paradigme objet où le développeur essaie d’exprimer des concepts réels.
Expand Down
3 changes: 2 additions & 1 deletion index.adoc
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
= Java 101
Loïc Ledoyen <loic.ledoyen@gmail.com>
:reproducible:
:toc-title: Java 101
:listing-caption: Listing
:source-highlighter: rouge
:hardbreaks-option:
:toc:
:toc: left
:title-page:

ifndef::ci[]
Expand Down