Perguntas com a marcação «generics»

Meta técnica, que permite adiar a configuração do tipo confiável para o tempo de execução.


7
O que há de errado com os genéricos de Java? [fechadas]
Já vi várias vezes neste site postagens que desacreditam a implementação de genéricos em Java. Agora, posso dizer honestamente que não tive problemas com o uso deles. No entanto, eu não tentei fazer uma classe genérica sozinho. Então, quais são seus problemas com o suporte genérico do Java?
49 java  generics 

6
Boas ou más práticas para mascarar coleções Java com nomes de classe significativos?
Ultimamente, tenho o hábito de "mascarar" coleções Java com nomes de classes amigáveis ​​ao ser humano. Alguns exemplos simples: // Facade class that makes code more readable and understandable. public class WidgetCache extends Map<String, Widget> { } Ou: // If you saw a ArrayList<ArrayList<?>> being passed around in the code, …

4
O que é abuso de genéricos?
Ao revisar algum código, notei a oportunidade de alterá-lo para usar genéricos. O código (ofuscado) se parece com: public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets) { var someProperty = typeOfTarget.GetProperty(possibleTargets[0]); ... } Este código pode ser substituído por genéricos, da seguinte forma: public void DoAllTheThings<T>(object[] possibleTargets[0]) { var someProperty = type(T).getProperty(possibleTargets[0]); …
35 generics 

12
É um cheiro de código armazenar objetos genéricos em um contêiner e, em seguida, obter um objeto e fazer o downcast dos objetos do contêiner?
Por exemplo, eu tenho um jogo, que possui algumas ferramentas para aumentar a capacidade do Player: Tool.h class Tool{ public: std::string name; }; E algumas ferramentas: Sword.h class Sword : public Tool{ public: Sword(){ this->name="Sword"; } int attack; }; Shield.h class Shield : public Tool{ public: Shield(){ this->name="Shield"; } int …

3
Um bom sistema de tipos genéricos
É geralmente aceito que os genéricos Java falharam em alguns aspectos importantes. A combinação de curingas e limites levou a algum código seriamente ilegível. No entanto, quando olho para outras linguagens, realmente não consigo encontrar um sistema de tipos genéricos com o qual os programadores estejam satisfeitos. Se considerarmos o …

8
C # Generics - Como evitar o método redundante?
Vamos supor que eu tenha duas classes parecidas com esta (o primeiro bloco de código e o problema geral estão relacionados ao C #): class A { public int IntProperty { get; set; } } class B { public int IntProperty { get; set; } } Essas classes não podem …
28 c#  generics 

1
Qual é a diferença entre <? estende Foo> e <Foo>
Parece que tenho um mal-entendido sobre a diferença entre &lt;Foo&gt;e &lt;? extends Foo&gt;. Pelo meu entendimento, se tivéssemos ArrayList&lt;Foo&gt; foos = new ArrayList&lt;&gt;(); Isso indica que objetos do tipo Foopodem ser adicionados a essa lista de matrizes. Como as subclasses de Footambém são do tipo Foo, elas também podem ser …
20 java  generics 

3
Genéricos vs interface comum?
Não me lembro de quando escrevi aula genérica da última vez. Toda vez que penso que preciso, depois de pensar um pouco, concluo que não preciso. A segunda resposta a essa pergunta me fez pedir esclarecimentos (como ainda não posso comentar, fiz uma nova pergunta). Então, vamos dar o código …

4
Quem estende as interfaces? E porque?
AFAIK, minha classe extendspai classes e implementsinterfaces. Mas me deparo com uma situação em que não posso usar implements SomeInterface. É a declaração de um tipo genérico. Por exemplo: public interface CallsForGrow {...} public class GrowingArrayList &lt;T implements CallsForGrow&gt; // BAD, won't work! extends ArrayList&lt;T&gt; Aqui, o uso implementsé sintaticamente …





3
Como os genéricos são implementados?
Esta é a questão da perspectiva interna do compilador. Estou interessado em genéricos, não em modelos (C ++), por isso marquei a pergunta com C #. Não é Java, porque o AFAIK os genéricos nos dois idiomas diferem nas implementações. Quando eu olho para idiomas sem genéricos, é bastante simples, …
16 c#  generics 

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.