2010-07-04 7 views
8

Ho lavorato a un progetto abbastanza semplice per una lezione. Sapevo che doveva essere scritto in Java, e ho letto abbastanza della descrizione di assegnazione per avere un'idea di ciò che avrei dovuto fare, così ho deciso di creare una soluzione piacevole, orientata agli oggetti (perché è Java, giusto ?). Quando finalmente riesco a leggere i dettagli nitidi del compito, mi imbatto in questo piccolo gioiello: l'intera faccenda dovrebbe essere presentata come un file di una sola classe. È troppo tardi per riscrivere il tutto ora, quindi ho cercato di aggirarlo rendendo tutte le mie classi classi interne statiche della classe primaria. Con mio grande dispiacere, ho scoperto che eclipse, almeno per impostazione predefinita, compila le classi interne per separare ancora i file di classe. Sfortunatamente non conosco molto le impostazioni del compilatore Java, ma spero che ci sia un modo per farle compilare tutte in un file .class. È possibile o devo semplicemente consegnare ciò che ho preso con un appunto e prendere qualsiasi cosa il mio TA decida di attraccare a me?Posso compilare una classe insieme a tutte le sue classi interne in un singolo file di classe?

+0

Ho visto un paio di sistemi di assegnazione di presentazione che consentono solo un singolo file da caricare (accompagnato da una descrizione del testo) - questo potrebbe essere il motivo per la limitazione di un .class-file. Se questo è davvero il caso, probabilmente staresti caricando un singolo file .jar con una nota di accompagnamento. –

+0

Come ha detto Bozho, non è possibile compilare più classi in un unico file di classe. Vorrei chiedere all'AT un po 'di clemenza, come già suggerito, ma allo stesso tempo provo a rifattenerlo in modo che compili in un singolo file di classe come backup. Potrebbe essere in grado di farlo in tempo, chissà. – Jeff

+2

Per gli incarichi che dovevo fare, dovevo sempre inviare il codice sorgente. –

risposta

6

Temo che non ci sia questa opzione. Ogni classe è definita nel proprio file di classe. Anche le classi anonime sono definiti in ParentClass$1.class

Quello che vorrei suggerire è quello di mettere un enorme commento/documentazione sul perché si pensa che non è bene mettere tutto in una classe. Ovviamente dipende dalla persona "dall'altra parte".

Se è richiesto un file , piuttosto che una classe, è sufficiente creare un file jar.

+0

beh lui che per qualche motivo deve aver pensato che sarebbe stato istruttivo cercare di risolvere il problema procedurale, ma perché farlo in Java, allora? Comunque, grazie per la rapida risposta. –

+0

bene, Java può anche essere utilizzato in modo procedurale. Soprattutto se si tratta di un algoritmo puramente. – Bozho

0

Detto questo, questo dovrebbe essere un singolo file , o un solo file didi classe. Se il primo è possibile ZIP/JAR, se quest'ultimo un po 'di chat con l'AT sarebbe la strada da percorrere.

3

Se vi sentite coraggiosi si potrebbe creare un barattolo per la vostra applicazione, codificare come una stringa in un vostro toplevelclass che si estende un programma di caricamento classe e utilizzare questo programma di caricamento classe per caricare le classi dal file jar decodificato.

Questo è così folle e mostra tanta conoscenza della piattaforma Java che deve valere crediti extra.

+0

Sì, è pazzesco! :) – Jeff

+0

Il modo più semplice è in realtà solo aggiungere il file jar al file di classe. La classe principale dovrebbe quindi estendere ClassLoader per leggere i dati jar dal proprio file. È così che potresti scrivere programmi di installazione di file singoli (o semplicemente eseguibili) prima di jar. – relet

1

Come TA, se uno studente mi invia un singolo file java, con un design orientato agli oggetti e classi nidificate, mi piacerebbe moltissimo!

Se la TA desiderava la soluzione più semplice al problema e la sovrascriveva, è ovviamente un'altra storia.

Nota che se all'AT non piacciono le classi annidate e pensano di essere cattive, indirizzalo ai post di NewSpeak e di Gilad Bracha. È stato coinvolto nella specifica del linguaggio Java, è un'autorità nel campo e ha creato un linguaggio interamente basato sulla nidificazione di classi!

Problemi correlati