Preguntas etiquetadas con type-inference

La inferencia de tipos es el proceso de inferir tipos para programas automáticamente, utilizando reglas definidas por un sistema de tipos.

30
Uso de la palabra clave var en C #
Bloqueado . Esta pregunta y sus respuestas están bloqueadas porque la pregunta está fuera de tema pero tiene un significado histórico. Actualmente no acepta nuevas respuestas o interacciones. Después de una discusión con colegas sobre el uso de la palabra clave 'var' en C # 3, me pregunté qué opiniones …
406 c#  type-inference  var 

3
Collections.emptyList () devuelve una Lista <Object>?
Tengo problemas para navegar la regla de Java para inferir parámetros de tipo genérico. Considere la siguiente clase, que tiene un parámetro de lista opcional: import java.util.Collections; import java.util.List; public class Person { private String name; private List&lt;String&gt; nicknames; public Person(String name) { this(name,Collections.emptyList()); } public Person(String name,List&lt;String&gt; nicknames) { …




5
Cómo pasar un tipo de clase como parámetro de función
Tengo una función genérica que llama a un servicio web y serializa la respuesta JSON a un objeto. class func invokeService&lt;T&gt;(service: String, withParams params: Dictionary&lt;String, String&gt;, returningClass: AnyClass, completionHandler handler: ((T) -&gt; ())) { /* Construct the URL, call the service and parse the response */ } Lo que intento …



8
¿Cómo puedo determinar de manera confiable el tipo de variable que se declara usando var en tiempo de diseño?
Estoy trabajando en una instalación de finalización (intellisense) para C # en emacs. La idea es que, si un usuario escribe un fragmento y luego solicita la finalización mediante una combinación de teclas en particular, la función de finalización utilizará la reflexión .NET para determinar las posibles finalizaciones. Hacer esto …

1
Llamar a métodos genéricos estáticos
Me he encontrado con una situación curiosa que involucra métodos genéricos estáticos. Este es el código: class Foo&lt;E&gt; { public static &lt;E&gt; Foo&lt;E&gt; createFoo() { // ... } } class Bar&lt;E&gt; { private Foo&lt;E&gt; member; public Bar() { member = Foo.createFoo(); } } ¿Cómo es que no tengo que especificar …


3
Una característica peculiar de la inferencia de tipos de excepción en Java 8
Mientras escribía código para otra respuesta en este sitio, encontré esta peculiaridad: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings("unchecked") static &lt;T extends Throwable&gt; void sneakyThrow(Throwable t) throws T { throw (T) t; } static &lt;T extends …

9
No se puede "findViewById" en Kotlin. Aparece el error "Error en la inferencia de tipos"
Recibo el siguiente error cuando intento encontrar un RecycleViewby id. Error: - Error de inferencia de tipo: no hay suficiente información para inferir el parámetro T Código: class FirstRecycleViewExample : AppCompatActivity() { val data = arrayListOf&lt;String&gt;() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.first_recycleview) val recycler_view = findViewById(R.id.recycler_view) as RecyclerView ///IN …

4
¿Por qué no se verifica el tipo de retorno lambda en tiempo de compilación?
La referencia del método utilizado tiene tipo de retorno Integer. Pero Stringse permite una incompatibilidad en el siguiente ejemplo. ¿Cómo arreglar la withdeclaración del método para que el tipo de referencia del método sea seguro sin la conversión manual? import java.util.function.Function; public class MinimalExample { static public class Builder&lt;T&gt; { …

6
¿Por qué Java no puede inferir un supertipo?
Todos sabemos que Long se extiende Number. Entonces, ¿por qué esto no se compila? ¿Y cómo definir el método withpara que el programa se compile sin ninguna conversión manual? import java.util.function.Function; public class Builder&lt;T&gt; { static public interface MyInterface { Number getNumber(); Long getLong(); } public &lt;F extends Function&lt;T, R&gt;, …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.