Abbiamo un ArrayList
di elementi in diverse classi che mi danno problemi ogni volta che vorrei inserire un nuovo elemento nell'elenco. È stato un errore da parte mia aver disegnato le classi nel modo in cui l'ho fatto, ma cambiare il design ora sarebbe più mal di testa di quello che vale (modello burocratico a cascata). Avrei dovuto prevedere cambiamenti di formato ai documenti che il cliente ci stava fornendo cascata sii dannatoCodice di riformattazione con espressioni regolari
Mi piacerebbe scrivere un semplice script in python che entri in una classe, aggiunge l'elemento all'elenco e quindi incrementa tutti i retrieval per i seguenti elementi. Non mi sembra molto esplicativo:
Foo extends Bar{
public Foo(){
m_Tags.add("Jane");
m_Tags.add("Bob");
m_Tags.add("Jim");
}
public String GetJane() { return m_ParsedValue.get(m_Tags.get(1)); }
public String GetBob() { return m_ParsedValue.get(m_Tags.get(2)); }
public String GetJim() { return m_ParsedValue.get(m_Tags.get(3)); }
}
Vedete se voglio aggiungere un valore tra "Jane" e "Bob" Ho poi dovuto incrementare i numeri interi nelle Funzioni Get *. Voglio solo scrivere un semplice script in Python che faccia il lavoro per me. Qualcuno che ho molto rispetto suggerito regex.
Edit:
Sì, LinkedHashMap. Così semplice, così facile e così non nelle specifiche di progettazione ora. Io odio la cascata. Lo odio con passione. Questa parte era una parte "piccola" e "facile" che "non dovrebbe richiedere molto tempo per progettare". Ho fatto degli errori. È bloccato nella pietra ora.
Fammi capire bene: si dispone di una enorme massa ingestibile di codice Java piena di magia numeri e stringhe hardcoded e vuoi inserirne uno nel mezzo e incrementare i seguenti numeri usando python? – Jorenko
Perché non usi una HashMap per questo? Basta usare la stringa come chiave e restituire il numero desiderato ... Mi sembra un modo più naturale per farlo. – Khelben
@Jorenko: Sì e no.Le stringhe sono prese da documenti proprietari proprietari formattati che vengono passati alla nostra applicazione. Il codice non è enorme e non viola DRY. Tuttavia, hai ragione. Ci sono un sacco di numeri magici e sì, voglio inserirne uno nel mezzo. – wheaties