Non è ridondante dichiarare il pacchetto nel file di classe? Non può essere dedotto dal percorso di costruzione?

1

Ho class Foo , la sua prima riga legge package com.bar.something.baz . Il suo file è in /com/bar/something/baz/ .

Perché devo dichiarare il pacchetto nel file di classe e poi inserire il file nello stesso percorso del pacchetto che ho dichiarato? Non è ridondante? Il compilatore non potrebbe dedurre dal percorso?

    
posta Mindwin 30.05.2017 - 17:05
fonte

1 risposta

2

Quando è stato creato, il compilatore Java non ha richiesto un particolare layout di directory per funzionare correttamente. È un design che è davvero bello per i piccoli progetti, perché posso avere una manciata di file sorgente in una singola directory, e ognuno può avere qualsiasi dichiarazione di pacchetto di cui ha bisogno. Fornisce al programmatore un grande controllo su dove sono posizionati i file, ma insieme al controllo extra arriva il costo di fare il lavoro per organizzare le cose manualmente. Tuttavia, non è un progetto che si adatta bene, motivo per cui per ogni albero organizzato di codice sorgente la dichiarazione del pacchetto sembra davvero ridondante. Un buon motivo per utilizzare un IDE è evitare lo sforzo manuale di gestione dei file sorgente, che può essere piuttosto noioso.

L'unico ambiente che conosco che ti permette di organizzare il tuo codice senza questi tipi di specificatori di gerarchia ridondanti è Smalltalk. La maggior parte dei sistemi Smalltalk funziona con un'immagine live, quindi non è necessario manipolare un gruppo di singoli file sorgente. Invece, si manipolano direttamente classi e metodi. L'idea di manipolare manualmente migliaia di file sorgente è estranea ai sistemi Smalltalk.

    
risposta data 01.06.2017 - 18:21
fonte

Leggi altre domande sui tag