Allo stato attuale, questa domanda non è adatta al nostro formato di domande e risposte. Ci aspettiamo che le risposte siano supportate da fatti, riferimenti o competenze, ma questa domanda probabilmente solleciterà dibattiti, argomenti, sondaggi o discussioni estese. Se ritieni che questa domanda possa essere migliorata e possibilmente riaperta, visita …
Nei linguaggi orientati agli oggetti che supportano parametri di tipo generico (noti anche come modelli di classe e polimorfismo parametrico, sebbene ovviamente ogni nome abbia connotazioni diverse), è spesso possibile specificare un vincolo di tipo sul parametro di tipo, in modo tale che sia discendente da un altro tipo. Ad …
Secondo la regola numero 4 di Object Calisthenics di Jeff Bay (RTF) in The ThoughtWorks Anthology, si consiglia di " Utilizzare raccolte di prima classe ". Regola 4: raccolte di prima classe L'applicazione di questa regola è semplice: qualsiasi classe che contiene una raccolta non deve contenere altre variabili membro. …
In una domanda StackExchange diversa, ho notato qualcuno che utilizza questo prototipo: void DoSomething<T>(T arg) where T: SomeSpecificReferenceType { //Code.... } Tenendo presente che esiste un solo tipo di vincolo ( SomeSpecificReferenceType), qual è la differenza e il vantaggio di scriverlo in questo modo, anziché semplicemente: void DoSomething(SomeSpecificReferenceType arg) { …
Il mio tipo IDE ( NetBeans ) controlla il mio Collectionsmentre sto scrivendo il codice. Ma allora, perché devo lanciare l'oggetto restituito di Object.clone()? Va bene Nessun danno nessun inganno. Ma ancora non capisco. Il controllo del tipo, senza casting, Object.clone()non è possibile per l' oggetto restituito ? Il framework …
Alcuni linguaggi consentono classi e funzioni con parametri di tipo (come List<T>dove Tpuò essere un tipo arbitrario). Ad esempio, puoi avere una funzione come: List<S> Function<S, T>(List<T> list) Alcune lingue consentono tuttavia di estendere questo concetto di un livello superiore, consentendoti di avere una funzione con la firma: K<S> Function<K<_>, …
Nel documento "Uno studio comparativo esteso sul supporto linguistico per la programmazione generica" di Garcia et al. viene fornito un interessante confronto delle funzionalità dei linguaggi di programmazione per la programmazione generica: con la breve spiegazione della terminologia: Qualcuno può testare il supporto Scala per la programmazione generica all'interno di …
Ho alcune interfacce che intendo implementare da terzi in futuro e fornisco personalmente un'implementazione di base. Userò solo un paio per mostrare l'esempio. Attualmente, sono definiti come Articolo: public interface Item { String getId(); String getName(); } ItemStack: public interface ItemStackFactory { ItemStack createItemStack(Item item, int quantity); } ItemStackContainer: public …
Da tempo gioco con C # per Windows e ASP.net per lo sviluppo MVC. Ma non sono ancora chiaro in alcune aree. Sto cercando di comprendere la differenza di base tra e problemi di prestazioni con l'utilizzo e lo scambio di tipi simili di interfacce di raccolta generiche . Qual …
Attualmente sto programmando in un ambiente accademico, quindi posso usare quello che voglio. Sto usando la libreria di grafici boost per alcune cose e mi chiedo se valga la pena investire gli sforzi nella comprensione più approfondita del GP. Sono curioso: la programmazione generica (GP) è molto usata nell'industria? La …
Ho bisogno di un'interfaccia che mi assicuri che sia disponibile un certo metodo, inclusa una firma specifica. Finora è quello che ho: public interface Mappable<M> { M mapTo(M mappableEntity); } Il problema sorge quando una classe dovrebbe essere mappabile su più altre entità. Il caso ideale sarebbe questo (non Java): …
Perché quando provo a creare un array di ArrayLists: ArrayList<Integer>[] arr=new ArrayList<Integer>[40];c'è un errore e java non lo consente? C'è una ragione legata all'implementazione java di generici, generici in qualsiasi lingua o qualcosa di arbitrario?
Setup: supponiamo di avere un tipo chiamato Iteratorche ha un parametro type Element: interface Iterator<Element> {} Quindi abbiamo un'interfaccia Iterableche ha un metodo che restituirà un Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Il problema con l' Iteratoressere generico è che …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.