Übung Java Lambda Validatorhttps://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api?&atomFri, 29 Mar 2024 01:42:24 +0000stack.ch
https://stack.ch/
978f3d85-ed6d-11ee-8c11-005056bb85fbSimtech AG - Ausbildung - Java - Kurs Java Advanced - Kurs Java Advanced - Ressourcen - Kurs Java Advanced - Übungen Lambda & Stream API - Übung Java Lambda Validator
https://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api
978f3fdd-ed6d-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:42:24 +0000Übung Java Lambda Validator
https://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api
978f416b-ed6d-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:42:24 +0000
https://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api
978f4328-ed6d-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:42:24 +0000Die folgenden Listings zeigen eine Validator Lösung mit enum Typ klassisch ohne Lambda Expressions:package ch.std.jup8.lambda.validator.classic;
public enum StringValidatorEnum {
STRING_8 {
@Override
public void validate(String s) throws ValidatorException {
if (s instanceof String) {
System.out.println();
}
if (s.length() > 8) {
throw new ValidatorException(this.name());
}
}
},
STRING_16 {
@Override
public void validate(String s) throws ValidatorException {
if (s.length() > 16) {
throw new ValidatorException(this.name());
}
}
},
STRING_32 {
@Override
public void validate(String s) throws ValidatorException {
if (s.length() > 32) {
throw new ValidatorException(this.name());
}
}
};
private StringValidatorEnum() {
}
public abstract void validate(String s) throws ValidatorException;
}package ch.std.jup8.lambda.validator.classic;
public class ValidatorException extends Exception {
private static final long serialVersionUID = 3493994521286475516L;
public ValidatorException() {
super();
}
public ValidatorException(String message) {
super(message);
}
}package ch.std.jup8.lambda.validator.classic;
public class ValidatorDemo {
public static void main(String[] args) {
String s = "1234567890";
try {
StringValidatorEnum.STRING_32.validate(s);
StringValidatorEnum.STRING_16.validate(s);
StringValidatorEnum.STRING_8.validate(s);
} catch (ValidatorException e) {
e.printStackTrace();
}
}
}
https://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api
978f493c-ed6d-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:42:24 +0000Die Dateien der Vorlage finden Sie auch hier
https://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api
978f4eed-ed6d-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:42:24 +0000In einem ersten Schritt möchten wir die Vorlage mit dem Supplier FunctionalInterface anpassen, so dass die Validierung über solches erfolgen kann. Das folgende Listing zeigt das angepasste Demo Programm:package ch.std.jup8.lambda.validator.lambda.supplier;
public class ValidatorDemo {
public static void main(String[] args) {
String s = "1234567890";
try {
StringValidator.STRING_32.validate(() -> s);
StringValidator.STRING_16.validate(() -> s);
StringValidator.STRING_8.validate(() -> s);
} catch (ValidatorException e) {
e.printStackTrace();
}
}
},
https://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api
978f51f9-ed6d-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:42:24 +0000Eine mögliche Lösung mit Supplier FunctionalInterface finden Sie hier
https://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api
978f5604-ed6d-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:42:24 +0000Jetzt wollen wir die Validierungsregeln über ein eigenen Validator FunctionalInterface erweitern. Das folgende Listing zeigt die Enum Klasse:package ch.std.jup8.lambda.validator.lambda;
import java.util.function.Supplier;
public enum StringValidatorEnum {
STRING_8(s -> {
if (s.get().toString().length() > 8) {
throw new ValidatorException("min length is 8");
}
}),
STRING_16(s -> {
if (s.get().toString().length() > 16) {
throw new ValidatorException("min length is 16");
}
}),
STRING_32(s -> {
if (s.get().toString().length() > 32) {
throw new ValidatorException("min length is 32");
}
});
private Validator<String> v;
private StringValidatorEnum(Validator<String> v) {
this.v = v;
}
public void validate(Supplier<String> s) throws ValidatorException {
v.validate(s);
}
}
Programmieren Sie das Validator FunctionalInterface, so dass der enum Typ kompiliert. Das Demo Programm sollte identisch bleiben.Das folgende Listing zeigt den Einsatz eines allgemeinen AnyValidators: // check null
try {
AnyValidator.validate(supplier -> {
if (supplier.get() == null) {
throw new ValidatorException();
}
}, null);
} catch (ValidatorException e) {
e.printStackTrace();
}
// check is number
try {
AnyValidator.validate(supplier -> {
if (supplier.get() == null) {
throw new ValidatorException();
}
Integer.parseInt(supplier.get());
}, "123");
} catch (ValidatorException e) {
e.printStackTrace();
}Programmieren Sie den AnyValidator (generic Interface), so dass das Listing kompiliert als Teil des Demo Programms.
https://www.golabs.ch/java-advanced-ausbildung-kurs-übungen-lambda-&-stream-api
978f5b57-ed6d-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:42:24 +0000Eine mögliche Lösung mit Callable FunctionalInterface finden Sie hierÜber uns
https://www.golabs.ch/about
Fri, 29 Mar 2024 01:42:24 +0000978f626a-ed6d-11ee-8c11-005056bb85fbAktuell
https://www.golabs.ch/
Fri, 29 Mar 2024 01:42:24 +0000978f6375-ed6d-11ee-8c11-005056bb85fbAGB
https://www.golabs.ch/agb
Fri, 29 Mar 2024 01:42:24 +0000978f642d-ed6d-11ee-8c11-005056bb85fbBildungswege
https://www.golabs.ch/bildungswege
Fri, 29 Mar 2024 01:42:24 +0000978f64d4-ed6d-11ee-8c11-005056bb85fbBlog
https://www.golabs.ch/blog
Fri, 29 Mar 2024 01:42:24 +0000978f6584-ed6d-11ee-8c11-005056bb85fbRufen Sie mich an
https://www.golabs.ch/callus
Fri, 29 Mar 2024 01:42:24 +0000978f6731-ed6d-11ee-8c11-005056bb85fbCharts
https://www.golabs.ch/charts
Fri, 29 Mar 2024 01:42:24 +0000978f6875-ed6d-11ee-8c11-005056bb85fbConsulting
https://www.golabs.ch/consulting
Fri, 29 Mar 2024 01:42:24 +0000978f696b-ed6d-11ee-8c11-005056bb85fbKontakt
https://www.golabs.ch/contact
Fri, 29 Mar 2024 01:42:24 +0000978f6a0f-ed6d-11ee-8c11-005056bb85fbAusbildung/Kurse
https://www.golabs.ch/education
Fri, 29 Mar 2024 01:42:24 +0000978f6ab6-ed6d-11ee-8c11-005056bb85fbSoftware Engineering
https://www.golabs.ch/engineering
Fri, 29 Mar 2024 01:42:24 +0000978f6b6d-ed6d-11ee-8c11-005056bb85fbFreelancer
https://www.golabs.ch/freelancer
Fri, 29 Mar 2024 01:42:24 +0000978f6c12-ed6d-11ee-8c11-005056bb85fbImpressum
https://www.golabs.ch/impressum
Fri, 29 Mar 2024 01:42:24 +0000978f6caf-ed6d-11ee-8c11-005056bb85fbKursleiter
https://www.golabs.ch/kursleiter
Fri, 29 Mar 2024 01:42:24 +0000978f6db9-ed6d-11ee-8c11-005056bb85fbNetzwerk
https://www.golabs.ch/network
Fri, 29 Mar 2024 01:42:24 +0000978f6e67-ed6d-11ee-8c11-005056bb85fbReferenzen
https://www.golabs.ch/references
Fri, 29 Mar 2024 01:42:24 +0000978f6f07-ed6d-11ee-8c11-005056bb85fbSitemap
https://www.golabs.ch/sitemap
Fri, 29 Mar 2024 01:42:24 +0000978f6fc2-ed6d-11ee-8c11-005056bb85fbTools
https://www.golabs.ch/tools
Fri, 29 Mar 2024 01:42:24 +0000978f705f-ed6d-11ee-8c11-005056bb85fbVision
https://www.golabs.ch/vision
Fri, 29 Mar 2024 01:42:24 +0000978f7117-ed6d-11ee-8c11-005056bb85fb