2010-12-20 5 views
1

C# -Code:Allgemein Art der Klassentyp sein, nur in Java

public class XYZ<T> where T : class, new() 

In .net Sie die generische zwingen kann unter Verwendung der oben syntex der Klassentyp sein.

Meine Frage ist, wie wir das gleiche mit Java erreichen kann?

+1

Warum möchten Sie das tun? – Cam

Antwort

1

In Java gibt es keine Beschränkung, die Sie, dass die Art auszudrücken ermöglicht einen nicht-arg Konstruktor haben muss. Im Gegensatz zu .NET in Java ist Terased at runtime.

0

Sie können das nicht tun. Und warum möchtest du? Sie können für jedes Objekt t, das als T t deklariert ist, nicht neu aufrufen. Kannst du erklären, warum du das machen willst?

+0

weil in .net Sie können, und wahrscheinlich ist er es gewohnt, es so zu machen –

0

Java nicht diesen speziellen Fall haben. In der Regel würden Sie die Standardaufgabe der Verwendung einer abstrakten Fabrik ausführen.

den Typ eines bestimmten Konstruktor haben Einschränkende ist ein statisches Problem, und deshalb Löschung/Verdinglichung ist nicht notwendig, es zu implementieren.