Articles of generics

Perché l’inferenza di tipo generico di Java 8 sceglie questo sovraccarico?

Considera il seguente programma: public class GenericTypeInference { public static void main(String[] args) { print(new SillyGenericWrapper().get()); } private static void print(Object object) { System.out.println(“Object”); } private static void print(String string) { System.out.println(“String”); } public static class SillyGenericWrapper { public T get() { return null; } } } Stampa “String” sotto Java 8 e “Object” sotto […]

Metodi generici di Java in classi generiche

Se si crea una class generica in Java (la class ha parametri di tipo generico), è ansible utilizzare metodi generici (il metodo utilizza parametri di tipo generico)? Considera il seguente esempio: public class MyClass { public K doSomething(K k){ return k; } } public class MyGenericClass { public K doSomething(K k){ return k; } public […]

Instantiating object del parametro type

Ho una class template come segue: class MyClass { T field; public void myMethod() { field = new T(); // gives compiler error } } Come posso creare una nuova istanza di T nella mia class?

Modo generico per verificare se l’ quadro esiste in Entity Framework?

Simile al modo migliore per verificare se l’object esiste in Entity Framework? Sto cercando un modo generico per controllare un’ quadro in un DbSet . Qualcosa come questo, che non funziona: private DbContext DbContext { get; set; } private DbSet DbSet { get; set; } public Boolean Exists(T entity) { return ((from item in this.DbSet […]

Come faccio a clonare una lista generica in Java?

Ho un ArrayList che mi piacerebbe restituire una copia di. ArrayList ha un metodo clone ha la seguente firma: public Object clone() Dopo aver chiamato questo metodo, come posso eseguire il cast dell’object restituito su ArrayList ?

Chiamando metodi generici statici

Mi sono imbattuto in una curiosa situazione che comportava metodi generici statici. Questo è il codice: class Foo { public static Foo createFoo() { // … } } class Bar { private Foo member; public Bar() { member = Foo.createFoo(); } } Come mai non devo specificare alcun argomento di tipo nell’espressione Foo.createFoo() ? È […]

Metodo generico con vincoli multipli

Ho un metodo generico che ha due parametri generici. Ho provato a compilare il codice qui sotto ma non funziona. È una limitazione .NET? È ansible avere più vincoli per diversi parametri? public TResponse Call(TRequest request) where TRequest : MyClass, TResponse : MyOtherClass

È ansible risolvere il problema “Un array generico di T viene creato per un parametro varargs” avviso del compilatore?

Questa è una versione semplificata del codice in questione, una class generica utilizza un’altra class con parametri di tipo generici e deve passare uno dei tipi generici a un metodo con parametri varargs: class Assembler { void assemble(X container, Y… args) { … } } class Component { void useAssembler(T something) { Assembler assembler = […]

Una caratteristica peculiare dell’inferenza di tipo eccezione in Java 8

Mentre scrivevo il codice per un’altra risposta su questo sito mi sono imbattuto in questa peculiarità: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings(“unchecked”) static void sneakyThrow(Throwable t) throws T { throw (T) t; } static void nonSneakyThrow(T t) throws T { […]

Trasmetti l’object al tipo generico per la restituzione

C’è un modo per lanciare un object per restituire il valore di un metodo? Ho provato in questo modo, ma ha dato un’eccezione di tempo compilazione nella parte “instanceof”: public static T convertInstanceOfObject(Object o) { if (o instanceof T) { return (T) o; } else { return null; } } Ho provato anche questo, ma […]