creo un método genérico sin parámetros, algo como:método genérico con ningún parámetro
private <T> TableCell<T> createTableCell(){
return new TableCell<T>();
}
Por lo tanto, en mi programa, cómo llamar a este método para un tipo concreto?
creo un método genérico sin parámetros, algo como:método genérico con ningún parámetro
private <T> TableCell<T> createTableCell(){
return new TableCell<T>();
}
Por lo tanto, en mi programa, cómo llamar a este método para un tipo concreto?
Por lo general, el tipo se infiere, pero se puede especificar el tipo con esta sintaxis:
Nota: Usted tiene un error en la definición de su método - no tenía ningún tipo de retorno:
private <T> TableCell<T> createTableCell(){
return new TableCell<T>();
}
Aquí ¿Cómo se le puede llamar:
TableCell<SomeType> tableCell = myObject.<SomeType>createTableCell();
Si el método no tiene acceso a ningún campo, tenga en cuenta lo que es una metanfetamina static
OD, lo que ustedes llamarían como:
TableCell<SomeType> tableCell = MyClass.<SomeType>createTableCell();
Como acotación al margen, cuando se utiliza esta sintaxis, muchos de contemplar las "eliteness" - es una sintaxis no a menudo.
sí, tienes razón. Este es mi error. De todos modos, el método genérico está en una clase no genérica, y quiero que otro método de esta clase llame a esta clase genérica, no método de otra clase. – Thinhbk
Sí. También publiqué la respuesta correcta primero. (La otra respuesta fue editada después de que se publicó la mía, creo que copió la mía). Nuevo Méjico. – Bohemian
Gracias por su explicación, me ayuda a entender más claro, ya que la sintaxis al definir la clase genérica frente al método genérico me hace confundirme. – Thinhbk
Se podría llamar a este método de la misma manera que llamó el constructor en su interior: createTableCell<TypeName>()
.
desafortunadamente no funciona. – Thinhbk
Hmm, en ese caso, debería extender la firma del método para incluir una sugerencia de tipo. La forma habitual de hacer que si usted realmente no tiene nada relevante a pasar en el método es una clase
Debido a que el tipo no puede deducirse del contexto (cuando se llama al método) se tiene que especificar que cuando se llama en la forma folowing:
obj.<MyType>createTableCell()
donde obj
es el objeto de una clase/tipo que contiene ese método.
En realidad, la sintaxis es 'obj.
@missingfaktor sí. Gracias. En realidad estaba tratando en Mientras tanto, porque siempre se me olvida la sintaxis en ese caso ... usted era más rápido que yo –
@missingfaktor: tienes razón. Muchas gracias. – Thinhbk
una vez que se llame a este método, se devolverá el TableCell de tipo T es decir, T tiene el tipo de la clase –
Quiso decir "retorno" en lugar de "retorno"? –
Generalmente, cuando llamo a este método, se volverá TableCell