public interface APIValidator {
boolean validate(Input i, Context c);
}
< /code>
Wenn es beispielsweise 2 APIs gibt: Senden und Akzeptieren, habe ich "Marker" Schnittstellen: < /p>
public interface SendAPIValidator implements APIValidator {
boolean validate(SendInput i, SendContext c);
}
public interface AcceptAPIValidator implements APIValidator {
boolean validate(AcceptInput i, AcceptContext c);
}
< /code>
bzw. diese haben Implementierungen.class Validators {
public static APIValidator composite(Set validators) {
return (input, context) -> {
return validators.stream()
.allMatch(validator -> validator.validate(input, context));
}
}
< /code>
versucht jedoch, dies in einen Anbieter zu injizieren, oder etwas funktioniert nicht: < /p>
SendAPIValidator provideCompositeValidator(Set validators) {
// Error: no instance(s) of type variable(s) C, I exist so that SendAPIValidator conforms to APIValidator
return Validators.compositeValidator(validators);
}
< /code>
Ist das an den Typ -Invarianten von Java (ich vergesse den technischen Begriff)? Ich weiß, dass es möglich ist, dies zu tun, wenn ich stattdessen in Apivalidator
Ich versuche, einen zusammengesetzten Validator für eine Reihe von APIs zu erstellen. Die generische Schnittstelle lautet: < /p> [code]public interface APIValidator { boolean validate(Input i, Context c); } < /code> Wenn es beispielsweise 2 APIs gibt: Senden und Akzeptieren, habe ich "Marker" Schnittstellen: < /p> public interface SendAPIValidator implements APIValidator { boolean validate(SendInput i, SendContext c); }
public interface AcceptAPIValidator implements APIValidator { boolean validate(AcceptInput i, AcceptContext c); } < /code> bzw. diese haben Implementierungen.class Validators { public static APIValidator composite(Set validators) { return (input, context) -> { return validators.stream() .allMatch(validator -> validator.validate(input, context)); }
} < /code> versucht jedoch, dies in einen Anbieter zu injizieren, oder etwas funktioniert nicht: < /p> SendAPIValidator provideCompositeValidator(Set validators) { // Error: no instance(s) of type variable(s) C, I exist so that SendAPIValidator conforms to APIValidator return Validators.compositeValidator(validators); } < /code> Ist das an den Typ -Invarianten von Java (ich vergesse den technischen Begriff)? Ich weiß, dass es möglich ist, dies zu tun, wenn ich stattdessen in Apivalidator [/code] bestehe. Gibt es einen anderen Weg?
Ich habe ArrayList, die 4 Elemente enthält. Jedes Element ist von Typliste . Ich versuche, das erste Element von ArrayList mit dem folgenden Code zu erhalten. Es führt jedoch Fehler
Wie man EF -Kern verwendet, um einen zusammengesetzten Fremdschlüssel zu verwalten, der einen übergeordneten Datensatz bezieht, dessen ID nach dem Insertion durch einen Datenbankauslöser generiert...
InvalidOperationException: Im Typ wurden mehrere Konstruktoren gefunden, die alle angegebenen
Argumenttypen akzeptieren
'System.Collections.Generic.List`1 '.
Es sollte nur ein anwendbarer...