Perguntas com a marcação «type-inference»

A inferência de tipos é o processo de inferir tipos para programas automaticamente, usando regras definidas por um sistema de tipos.

30
Uso da palavra-chave var em C #
Bloqueado . Esta pergunta e suas respostas estão bloqueadas porque a questão está fora do tópico, mas tem um significado histórico. No momento, não está aceitando novas respostas ou interações. Após uma discussão com os colegas sobre o uso da palavra-chave 'var' no C # 3, perguntei-me qual seria a …
406 c#  type-inference  var 

3
Collections.emptyList () retorna uma lista <Object>?
Estou com problemas para navegar na regra do Java para inferir parâmetros de tipo genérico. Considere a seguinte classe, que possui um 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
Como passar um tipo de classe como parâmetro de função
Eu tenho uma função genérica que chama um serviço web e serializa a resposta JSON de volta para um 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 */ } O …




1
Chamando métodos genéricos estáticos
Encontrei uma situação curiosa envolvendo métodos genéricos estáticos. Este é o 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(); } } Por que não preciso especificar nenhum argumento de tipo na expressão …


3
Uma característica peculiar da inferência de tipo de exceção em Java 8
Enquanto escrevia o código para outra resposta neste site, me deparei com esta peculiaridade: 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 …

4
Por que o tipo de retorno lambda não é verificado no tempo de compilação?
A referência do método usado possui tipo de retorno Integer. Mas um incompatível Stringé permitido no exemplo a seguir. Como corrigir a withdeclaração do método para obter o tipo de referência do método seguro sem transmitir manualmente? import java.util.function.Function; public class MinimalExample { static public class Builder&lt;T&gt; { final Class&lt;T&gt; …

6
Por que o Java não pode inferir um supertipo?
Todos sabemos que Long se estende Number. Então, por que isso não compila? E como definir o método withpara que o programa seja compilado sem nenhuma conversão 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;, R&gt; …

2
Por que o `std :: mem :: drop` não é exatamente o mesmo que o fechamento | _ | () nos limites de características com classificação mais alta?
A implementação de std::mem::dropestá documentada para ser a seguinte: pub fn drop&lt;T&gt;(_x: T) { } Como tal, eu esperaria que o fechamento |_| ()(conhecido coloquialmente como fechamento do vaso sanitário ) fosse um potencial substituto 1: 1 para drop, em ambas as direções. No entanto, o código abaixo mostra que …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.