Uma " poluição de pilha ", como nos tipos não reificáveis (Os tutoriais de Java ™> Aprendendo a linguagem Java> Genéricos (atualizado)) Por que é assim chamado?
Meta técnica, que permite adiar a configuração do tipo confiável para o tempo de execução.
Uma " poluição de pilha ", como nos tipos não reificáveis (Os tutoriais de Java ™> Aprendendo a linguagem Java> Genéricos (atualizado)) Por que é assim chamado?
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...
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...
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 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 :...
É 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...
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 ser alteradas de forma alguma (elas...
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...
Estou hospedado em um ambiente em que as pessoas acreditam: Os genéricos Java são o recurso usado exclusivamente para a gravação de bibliotecas e não para a codificação real. C ++ é uma linguagem de programação OO; templateé um recurso opcional e evitável No entanto, essas pessoas dependem...
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 <T implements CallsForGrow> //...
Parece que tenho um mal-entendido sobre a diferença entre <Foo>e <? extends Foo>. Pelo meu entendimento, se tivéssemos ArrayList<Foo> foos = new ArrayList<>(); Isso indica que objetos do tipo Foopodem ser adicionados a essa lista de matrizes. Como as subclasses de...
Em C # genéricos, podemos declarar uma restrição para um parâmetro de tipo Tter um construtor padrão, dizendo where T : new(). No entanto, nenhum outro tipo de restrição como esse é válido - new(string)por exemplo, etc. Do ponto de vista do design e / ou implementação da linguagem, qual o motivo...
Suponha que eu tenha essa hierarquia de classes ... public abstract class Animal { public abstract void eat(); public abstract void talk(); } class Dog extends Animal { @Override public void eat() { } @Override public void talk() { } } class Cat extends Animal { @Override public void...
Tenho certeza de que todos estão familiarizados com métodos genéricos do formulário: T DoSomething<T>(T item) Essa função também é chamada de parametricamente polimórfico (PP), especificamente PP de classificação 1 . Digamos que esse método possa ser representado usando um objeto de...
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,...
Atualmente, essa questão não se encaixa no nosso formato de perguntas e respostas. Esperamos que as respostas sejam apoiadas por fatos, referências ou conhecimentos, mas essa pergunta provavelmente solicitará debates, argumentos, pesquisas ou discussões prolongadas. Se você acha que...
De acordo com a regra número 4 de Object Calisthenics, de Jeff Bay (RTF) na The ThoughtWorks Anthology, recomenda-se que "se use coleções de primeira classe ". Regra 4: Coleções de primeira classe A aplicação desta regra é simples: qualquer classe que contenha uma coleção não deve conter...
Em linguagens orientadas a objetos que suportam parâmetros de tipo genéricos (também conhecidos como modelos de classe e polimorfismo paramétrico, embora, é claro, cada nome possua conotações diferentes), muitas vezes é possível especificar uma restrição de tipo no parâmetro de tipo, de forma que...
Em uma pergunta StackExchange diferente, notei alguém usando este protótipo: void DoSomething<T>(T arg) where T: SomeSpecificReferenceType { //Code.... } Tendo em mente que existe apenas uma restrição de tipo único ( SomeSpecificReferenceType), qual é a diferença e a vantagem de...
No artigo “Um estudo comparativo estendido de suporte a idiomas para programação genérica” de Garcia et al. é apresentada uma comparação interessante dos recursos das linguagens de programação para programação genérica: com a breve explicação da terminologia: Alguém pode testar o suporte da...