JSP - Referenziare classe java in default package

di il
2 risposte

JSP - Referenziare classe java in default package

Ciao a tutti,

sto lavorando su un progetto già esistente dove sono state definite delle classi java nel package di default (quindi senza dichiarazione) e mi servirebbe istanziare una di queste classi in una JSP.

Se provo a farlo ottengo l'errore “NomeClasse cannot be resolved to a type”.

Ho letto in rete che dalla versione java 1.5 non è più possibile eseguire l'import di una classe nel package di default e che queste classi possono essere utilizzate solo da classi del package di default.

Siccome non ho possibilità di modificare il progetto e spostare le classi in un altro package, c'è comunque un modo per poterle utilizzare?

Grazie, ciao.

MM

2 Risposte

  • Re: JSP - Referenziare classe java in default package

    Soluzione 1: chiedi a chi mantiene quel progetto di ristrutturarlo, andando ad inserire quelle classi in un package (a lui non cambia nulla, se non un briciolo di refactoring dove serve)

    Soluzione 2: spostale tu dentro ad un package (con il refactoring dove serve)

    Soluzione 3: crea un package come ti pare, fai una copia delle classi dentro a quella directory e modifica l'intestazione dei file in modo da rispecchiarne la struttura di package: ora puoi usare le classi dentro al tuyo package.

    Se nessuna delle soluzioni sopra indicate è fattibile, allora non ti rimane che farti del male con la reflection:

    // Supponendo che la tua classe si chiami "TuaClasse",
    // che fornisca un metodo chiamato "tuoMetodo", che riceve come parametro
    // un intero e che restituisca un Double
    
    Class tuaClasse = Class.forName("TuaClasse");
    Method tuoMetodo = tuaClasse.getMethod("tuoMetodo", Integer.class);
    
    // Invoco il metodo passandogli il valore intero 5
    Double retValue = (Double) tuoMetodo.invoke(tuaClasse.newInstance(), 5);

    Ma, sinceramente, nei tuoi panni non vorrei trovarmi a gestire il tutto con la reflection.

  • Re: JSP - Referenziare classe java in default package

    Credo che la mia unica soluzione sia la reflection. Tanto questo approccio mi serve solo per “studiare” le classi ed eseguire piccoli test.

    Grazie mille per l'aiuto.

Devi accedere o registrarti per scrivere nel forum
2 risposte