2017-10-25 4 views
0

Ich las vor kurzem, dass Typ-Parameternamen genau ein Großbuchstabe sein müssen.Java - Maximale Anzahl von Typparametern

Wenn dies der Fall ist, gibt es dann nicht eine maximale Anzahl von Typparametern?

Wäre dieses Maximum gleich der Anzahl der Großbuchstaben, die auch gültige Java-Bezeichner sind?

+4

"Ich habe kürzlich gelesen, dass Typ-Parameternamen genau ein Großbuchstabe sein müssen." - Das ist falsch. Es ist eine Konvention, aber keine Voraussetzung. Ein Typparameter kann ein beliebiger gültiger Bezeichnername sein, er muss kein einzelner Großbuchstabe sein. – Jesper

+0

Sie lesen falsch. Typparameter können eine beliebige Kennung sein. Per Konvention sind sie normalerweise ein Großbuchstabe, aber ich habe auch einen Großbuchstaben gefolgt von einer Ziffer gesehen, und ich habe vielleicht zwei oder drei Großbuchstaben gesehen. Java interessiert das aber nicht. Aber wenn Sie der Konvention nicht folgen, verwirren Sie Leute, die versuchen, Ihren Code zu lesen. – ajb

+0

Ich weiß nicht, ob Java die Anzahl der Typparameter begrenzt. Aber die geistige Gesundheit Ihrer Leser setzt dem sicher Grenzen. Ich nehme an, dass das Limit 10 oder weniger ist. Ich glaube, die Java-Stream-Laufzeit hat einige Fälle mit 5. – ajb

Antwort

2

Die Konvention soll einen Buchstaben für einen Typ verwenden. Ein Typparameter ist jedoch gebunden only by the hard limits of an identifier, das heißt, es muss ein gültiger Java-Bezeichner sein. Irgendwelche harten Grenzen würden nur davon kommen.

Dort sind gültige Fälle, in denen es akzeptabel ist, die Konvention zu brechen. Insbesondere in den Tagen von Java 7, wenn Sie irgendeine Art von Transformation taten die zwei disjunkte Arten erforderlich, können Sie es angeben, wie so:

public <DatabaseDataFmt extends DatabaseDTO, 
     ProjectionFmt extends ProjectionDTO, 
     Result> 
    Result transform(DatabaseDataFmt databaseFormat, 
        ProjectionFmt projectionFormat) {} 

Letztlich hängt es davon ab, was Sie mit Ihrem Identifikatoren zu erreichen . Convention hilft, aber wenn es nicht Hilfe, dann gibt es keinen Grund, daran gebunden zu sein.

Verwandte Themen