Entschuldigung für den schlechten Titel. Ich würde mich bei der Erstellung eines besseren Hilfe freuen, aber ich weiß nicht einmal, wie ich mein Problem beschreiben soll. Typen. < /p>
interface M {}
interface F {}
< /code>
Und sagen wir, ich mache eine Klasse, die beide Schnittstellen implementiert. < /p>
record A (A1 a1, A2 a2)
implements
M,
F
{}
< /code>
Ok, cool. Ich kann jetzt ein
überall verwenden, wo ich sonst m oder f .
Jetzt verwendet hätte. Jetzt ist hier mein Problem. Ich versuche Folgendes zu tun und fehlgeschlagen bei Compiler -Fehlern. < /P>
public class DoublyNestedGenerics
{
interface M {}
interface F {}
record A (A1 a1, A2 a2)
implements
M,
F
{}
private
static
<
D1,
D2,
D extends
M
& F
>
D
canItWork(final D1 d1, final D2 d2)
{
// return new A(d1, d2);
throw new UnsupportedOperationException();
}
}
< /code>
OK, also alles kompiliert. Aber wenn ich die Rückgabe erfasse und die Ausnahme ersetze, erhalte ich den folgenden Kompilierungsfehler. < /P>
DoublyNestedGenerics.java:28: warning: [rawtypes] found raw type: A
return new A(d1, d2);
^
missing type arguments for generic class A
where A1,A2 are type-variables:
A1 extends Object declared in record A
A2 extends Object declared in record A
< /code>
OK, macht Sinn. Lassen Sie mich stattdessen die Rückkehr ändern. < /P>
return new A(d1, d2);
< /code>
Das Drücken von Kompilien gibt mir den folgenden Compiler -Fehler. < /p>
DoublyNestedGenerics.java:28: error: incompatible types: cannot infer type arguments for A
return new A(d1, d2);
^
reason: no instance(s) of type variable(s) A1,A2 exist so that A conforms to D
where A1,A2,D,D1,D2 are type-variables:
A1 extends Object declared in record A
A2 extends Object declared in record A
D extends M,F declared in method canItWork(D1,D2)
D1 extends Object declared in method canItWork(D1,D2)
D2 extends Object declared in method canItWork(D1,D2)
1 error
< /code>
Ich habe den Fehler nicht vollständig verstanden, daher habe ich beschlossen, das [url=viewtopic.php?t=11587]Problem[/url] zu vereinfachen. von nur D1
private
static
<
D extends
M
& F
>
D
canItWorkAttempt2(final Integer d1, final Integer d2)
{
// return new A(d1, d2);
throw new UnsupportedOperationException();
}
< /code>
tauscht die Kommentare aus und das Drücken von Compile gab mir den folgenden Compiler -Fehler. < /p>
DoublyNestedGenerics.java:44: error: incompatible types: cannot infer type arguments for A
return new A(d1, d2);
^
reason: no instance(s) of type variable(s) A1,A2 exist so that A conforms to D
where A1,A2,D are type-variables:
A1 extends Object declared in record A
A2 extends Object declared in record A
D extends M,F declared in method canItWorkAttempt2(Integer,Integer)
1 error
< /code>
OK, viel kleiner und daher leichter analysieren. < /p>
Eine Sache, die mir aufgefallen ist Notieren Sie a
. Vielleicht braucht die Inferenz Hilfe. Also habe ich stattdessen die Rückkehr geändert. < /P>
return new A(d1, d2);
< /code>
Dies führte zu dem folgenden Kompiliererfehler. < /p>
DoublyNestedGenerics.java:44: error: incompatible types: A cannot be converted to D
return new A(d1, d2);
^
where D is a type-variable:
D extends M,F declared in method canItWorkAttempt2(Integer,Integer)
1 error
< /code>
Fortschritt! Ich fing jetzt an, Verdacht zu haben, und um sie zu bestätigen, beschloss ich, mein [url=viewtopic.php?t=11587]Problem[/url] erheblich zu vereinfachen. Ich habe die folgende Klasse erstellt. < /P>
record N (Integer n1, Integer n2)
implements
M,
F
{}
< /code>
Kompiliert ohne Probleme. Schön, versuchen wir, den Rückgabetyp zu ändern, um dies stattdessen zu verwenden. Hier ist, was ich die Rückkehr geändert habe. < /P>
return new N(d1, d2);
< /code>
Mit hohen Hoffnungen drückte ich Compile. < /p>
DoublyNestedGenerics.java:50: error: incompatible types: N cannot be converted to D
return new N(d1, d2);
^
where D is a type-variable:
D extends M,F declared in method canItWorkAttempt2(Integer,Integer)
1 error
< /code>
Sehr enttäuschend. Aber für mich tauchte etwas anderes auf. In dem Fehler heißt es, wo D d ein Typ-Variable ist: D erweitert M , F
.
Sie verwendeten das Wort < em> erweitert . Aus Verzweiflung habe ich versucht, die folgenden Typen hinzuzufügen. < /P>
interface C extends M, F {}
record N2 (Integer n1, Integer n2) implements C {}
< /code>
und dann habe ich von dort aus meine Rückkehr geändert, um dies zu sagen. < /p>
final C blah = new N2(d1, d2);
return blah;
< /code>
Dann habe ich Compile gedrückt. < /p>
DoublyNestedGenerics.java:55: error: incompatible types: C cannot be converted to D
return blah;
^
where D is a type-variable:
D extends M,F declared in method canItWorkAttempt2(Integer,Integer)
1 error
< /code>
Zu diesem Zeitpunkt bin ich verärgert. /Code>. Und es wird mir auch gesagt, dass D ein Typ-Variable
ist, insbesondere, dass D M , F genau das ist, was genau das ist C. Macht . Und doch funktioniert es immer noch nicht? < /P>
Was bringt mich hierher. Was vermisse ich? Und wieder möchte, dass ein besserer Titel geschaffen wird, wenn jemand bereit ist, Vorschläge zu machen. /p>
public class DoublyNestedGenerics
{
interface M {}
interface F {}
record A (A1 a1, A2 a2)
implements
M,
F
{}
record N (Integer n1, Integer n2)
implements
M,
F
{}
interface C extends M, F {}
record N2 (Integer n1, Integer n2) implements C {}
private
static
<
D1,
D2,
D extends
M
& F
>
D
canItWork(final D1 d1, final D2 d2)
{
// return new A(d1, d2);
throw new UnsupportedOperationException();
}
private
static
<
D extends
M
& F
>
D
canItWorkAttempt2(final Integer d1, final Integer d2)
{
final C blah = new N2(d1, d2);
return blah;
// return new N(d1, d2);
// throw new UnsupportedOperationException();
}
}
Entschuldigung für den schlechten Titel. Ich würde mich bei der Erstellung eines besseren Hilfe freuen, aber ich weiß nicht einmal, wie ich mein [url=viewtopic.php?t=11587]Problem[/url] beschreiben soll. Typen. < /p> [code]interface M {} interface F {} < /code> Und sagen wir, ich mache eine Klasse, die beide Schnittstellen implementiert. < /p> record A (A1 a1, A2 a2) implements M, F {} < /code> Ok, cool. Ich kann jetzt ein [/code] überall verwenden, wo ich sonst m oder f . Jetzt verwendet hätte. Jetzt ist hier mein Problem. Ich versuche Folgendes zu tun und fehlgeschlagen bei Compiler -Fehlern. < /P> [code]public class DoublyNestedGenerics {
interface M {}
interface F {}
record A (A1 a1, A2 a2) implements M, F {}
private static < D1, D2, D extends M & F > D canItWork(final D1 d1, final D2 d2) {
// return new A(d1, d2); throw new UnsupportedOperationException();
}
} < /code> OK, also alles kompiliert. Aber wenn ich die Rückgabe erfasse und die Ausnahme ersetze, erhalte ich den folgenden Kompilierungsfehler. < /P> DoublyNestedGenerics.java:28: warning: [rawtypes] found raw type: A return new A(d1, d2); ^ missing type arguments for generic class A where A1,A2 are type-variables: A1 extends Object declared in record A A2 extends Object declared in record A < /code> OK, macht Sinn. Lassen Sie mich stattdessen die Rückkehr ändern. < /P> return new A(d1, d2); < /code> Das Drücken von Kompilien gibt mir den folgenden Compiler -Fehler. < /p> DoublyNestedGenerics.java:28: error: incompatible types: cannot infer type arguments for A return new A(d1, d2); ^ reason: no instance(s) of type variable(s) A1,A2 exist so that A conforms to D where A1,A2,D,D1,D2 are type-variables: A1 extends Object declared in record A A2 extends Object declared in record A D extends M,F declared in method canItWork(D1,D2) D1 extends Object declared in method canItWork(D1,D2) D2 extends Object declared in method canItWork(D1,D2) 1 error < /code> Ich habe den Fehler nicht vollständig verstanden, daher habe ich beschlossen, das [url=viewtopic.php?t=11587]Problem[/url] zu vereinfachen. von nur D1 [/code] und d2 . So sieht die neue Methode aus. < /P> [code] private static < D extends M & F > D canItWorkAttempt2(final Integer d1, final Integer d2) {
// return new A(d1, d2); throw new UnsupportedOperationException();
} < /code> tauscht die Kommentare aus und das Drücken von Compile gab mir den folgenden Compiler -Fehler. < /p> DoublyNestedGenerics.java:44: error: incompatible types: cannot infer type arguments for A return new A(d1, d2); ^ reason: no instance(s) of type variable(s) A1,A2 exist so that A conforms to D where A1,A2,D are type-variables: A1 extends Object declared in record A A2 extends Object declared in record A D extends M,F declared in method canItWorkAttempt2(Integer,Integer) 1 error < /code> OK, viel kleiner und daher leichter analysieren. < /p> Eine Sache, die mir aufgefallen ist Notieren Sie a [/code]. Vielleicht braucht die Inferenz Hilfe. Also habe ich stattdessen die Rückkehr geändert. < /P> [code] return new A(d1, d2); < /code> Dies führte zu dem folgenden Kompiliererfehler. < /p> DoublyNestedGenerics.java:44: error: incompatible types: A cannot be converted to D return new A(d1, d2); ^ where D is a type-variable: D extends M,F declared in method canItWorkAttempt2(Integer,Integer) 1 error < /code> Fortschritt! Ich fing jetzt an, Verdacht zu haben, und um sie zu bestätigen, beschloss ich, mein [url=viewtopic.php?t=11587]Problem[/url] erheblich zu vereinfachen. Ich habe die folgende Klasse erstellt. < /P> record N (Integer n1, Integer n2) implements M, F {} < /code> Kompiliert ohne Probleme. Schön, versuchen wir, den Rückgabetyp zu ändern, um dies stattdessen zu verwenden. Hier ist, was ich die Rückkehr geändert habe. < /P> return new N(d1, d2); < /code> Mit hohen Hoffnungen drückte ich Compile. < /p> DoublyNestedGenerics.java:50: error: incompatible types: N cannot be converted to D return new N(d1, d2); ^ where D is a type-variable: D extends M,F declared in method canItWorkAttempt2(Integer,Integer) 1 error < /code> Sehr enttäuschend. Aber für mich tauchte etwas anderes auf. In dem Fehler heißt es, wo D d ein Typ-Variable ist: D erweitert M , F [/code]. Sie verwendeten das Wort < em> [b] erweitert [/b] . Aus Verzweiflung habe ich versucht, die folgenden Typen hinzuzufügen. < /P> [code]interface C extends M, F {}
record N2 (Integer n1, Integer n2) implements C {} < /code> und dann habe ich von dort aus meine Rückkehr geändert, um dies zu sagen. < /p> final C blah = new N2(d1, d2); return blah; < /code> Dann habe ich Compile gedrückt. < /p> DoublyNestedGenerics.java:55: error: incompatible types: C cannot be converted to D return blah; ^ where D is a type-variable: D extends M,F declared in method canItWorkAttempt2(Integer,Integer) 1 error < /code> Zu diesem Zeitpunkt bin ich verärgert. /Code>. Und es wird mir auch gesagt, dass D ein Typ-Variable [/code] ist, insbesondere, dass D M , F [b] genau das ist, was genau das ist C. Macht [/b] . Und doch funktioniert es immer noch nicht? < /P> Was bringt mich hierher. Was vermisse ich? Und wieder möchte, dass ein besserer Titel geschaffen wird, wenn jemand bereit ist, Vorschläge zu machen. /p> [code]public class DoublyNestedGenerics {
interface M {}
interface F {}
record A (A1 a1, A2 a2) implements M, F {}
record N (Integer n1, Integer n2) implements M, F {}
interface C extends M, F {}
record N2 (Integer n1, Integer n2) implements C {}
private static < D1, D2, D extends M & F > D canItWork(final D1 d1, final D2 d2) {
// return new A(d1, d2); throw new UnsupportedOperationException();
}
private static < D extends M & F > D canItWorkAttempt2(final Integer d1, final Integer d2) {
final C blah = new N2(d1, d2); return blah; // return new N(d1, d2); // throw new UnsupportedOperationException();
Entschuldigung für den schlechten Titel. Ich würde mich bei der Erstellung eines besseren Hilfe freuen, aber ich weiß nicht einmal, wie ich mein Problem beschreiben soll. Typen.
interface M {}...
Entschuldigung für den schlechten Titel. Ich würde mich bei der Erstellung eines besseren Hilfe freuen, aber ich weiß nicht einmal, wie ich mein Problem beschreiben soll. Typen.
interface M {}...
Ich bin nicht gut in Englisch, aber das Video gibt mir das Verständnis, dass MySQL beim Ausführen standardmäßig den Port verwendet, den XAMPP benötigt, um diesen lokalen Server MySQL zu erstellen....
Ich habe die PIP-Installation für Twilio gemacht und das Terminal hat den größten Teil der Installation durchgeführt, aber am Ende gab es mir im Installationsfehlercode:
ERROR: Could not install...
Ich habe ein benutzerdefiniertes Tool für Typscript -Erzeugung erstellt, mit dem C# DTOS in TypeScript -DTOs umwandelt. Ich habe es jedoch satt, dieses Tool aufrechtzuerhalten und nach einem Ersatz...