Error: int cannot be dereferenced

LukeFerrari

Nuovo Utente
16 Gen 2014
27
1
0
Ho un problema con un programmino che sto facendo per stabilire se un anno è bisestile, ovvero se è divisibile per 4, ad eccezione degli anni divisibili per 100 (tranne i numeri divisibili per 400); tali eccezioni non valgono nel caso in cui l'anno sia inferiore o uguale a 1582 (anno di introduzione del calendario gregoriano). Il codice è il seguente:

Codice:
import java.util.Scanner;
public class LeapYearTester2
{
    public static void main(String[] args)
    {
        System.out.println("Inserire un anno. \n");
        Scanner in = new Scanner(System.in);
        int anno = in.nextInt();
        in.close();


        if (anno <= 0)
            System.out.println("\nL'anno deve essere un numero positivo e maggiore di 0.");
        else
            if (anno % 4 == 0)
            {
                if (anno.isEccez() == false)
                    System.out.println("\nL'anno " + anno + " è bisestile.");
                else
                    System.out.println("\nL'anno " + anno + " non è bisestile.");
            }
            else
                System.out.println("\nL'anno " + anno + " non è bisestile.");
    }


    public boolean isEccez(int anno)
    {
        if (anno > 1582)
        {
            if (anno % 100 == 0)
            {
                if (anno % 400 == 0)
                    return false;
                else
                    return true;
            }
            else
                return false;
        }
        else
            return false;
    }
}

Questo è l'errore che visualizzo quando cerco di compilare è

Codice:
	LeapYearTester2.java:17: error: int cannot be dereferenced
                       if (anno.isEccez() == false)

Grazie in anticipo a tutti quelli che mi risponderanno
 
  • Like
Reactions: ottofonsuppost

Ansharja

Nuovo Utente
21 Nov 2014
3
1
0
Doppia Soluzione

Ciao LukeFerrari non sono un utente esperto ma provo a risponderti lo stesso ^^.

Intanto provo a darti due consigli generali che trovo utili:
1- Non usare nomi di classi molto lunghi,se devi istanziare oggetti come farò nella prima soluzione scrivi codice per nulla
2- Dentro la clausola if invece di scrivere if(condizione==true) o if(condizione==false) è sufficente scrivere if(condizione) o if(!condizione) , perchè entri nel ciclo if se tra parentesi hai un booleano che vale true. Quindi la condizione if(anno.isEccez() == false) è un pò come scrivere if(false==false),puoi semplificare scrivendo solo
if(!anno.isEccez()).

Per quanto riguarda l'errore che ricevi in fase di compilazione , il tuo errore è che stai cercando di applicare un metodo della classe LeapYearTester2 a un oggetto di tipo int invece di passare l'intero anno al metodo dentro la parentesi.

Soluzione 1:istanziare un oggetto della classe LeapYearTester2 e applicare il metodo isEccez su di esso:

LeapYearTester2 scegliNome=new LeapYearTester2(); //costruttore di base perchè non ne hai dichiarati.

E poi nel ciclo sostituisci la riga 17 con if(scegliNome.isEccez(anno) == false) (meglio se abbrevi come scrivo sopra)

Soluzione 2:dichiarare il metodo isEccez(int anno) come metodo di classe,in questo modo devi solo usare il metodo senza istanziare un oggetto della classe LeapYearTester2:

public static boolean isEccez(int anno) al posto di public boolean isEccez(int anno) nella dichiarazione del metodo,nella riga 17 scriverai if(isEccez(anno) == false) cioè non applichi il metodo a nessun oggetto.

Tieni presente che un metodo statico va un po' contro alla logica di java (io me ne frego e lo faccio lo stesso ^^),cioè non potrai usarlo su oggetti istanziati.
 
  • Like
Reactions: ottofonsuppost
Discussioni simili
Autore Titolo Forum Risposte Data
S 404 Error " Page not Find" Error SEO e Posizionamento 0
L Error Code: 1215. Cannot add foreign key constraint MySQL 3
M HTTP Status 500 - Internal Server Error. Java 0
A Uncaught Error: jQuery 1
F Uncaught (in promise) Error: 3000ms timeout exceeded Javascript 0
U Campo vuoto data errore Fatal error: PHP 2
W ADODB.Recordset error '800a0bb9' Classic ASP 2
D error text in table HTML e CSS 11
W Microsoft OLE DB Provider for Visual FoxPro error '80040e14' Function name is missing ). Classic ASP 0
W Parse error: syntax error, unexpected '$result' (T_VARIABLE) PHP 4
W Errore di run-time di Microsoft VBScript error '800a0035' Impossibile trovare il file Classic ASP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
G Upload file error Apache 0
A Server Apache immagine not found (ERROR 404) Apache 5
L [PHP] Fatal error: Call to a member function prepare() on null in PHP 0
D [PHP] Fatal error: Class 'COM' not found in C:\..... PHP 6
T MySQL ERROR 1064 MySQL 1
T [PHP] aiuto....Fatal error: Uncaught Error:non riesco a capire PHP 1
T [PHP] ...Parse error che non c'è... PHP 7
C [PHP] Errore "Fatal error: Call to undefined function getTotalUsers()" PHP 2
V [MySQL] You have an error in your SQL syntax MySQL 1
G PHPMailer: SMTP error Gmail PHP 8
G [WordPress] [PHP] Parse error: syntax error, unexpected '$x332cbce1' WordPress 2
I [PHP] Login Facebook SDK returned an error: No URL set! PHP 0
bubino8 [PHP] Query syntax error PHP 6
J [PHP] Recoverable fatal error: PHP 4
momeraths [WordPress] cURL error: problema aggiornamento/installazione plugin WordPress 4
A [PHP] FPDF error: Some data has already been output, can't send PDF file PHP 5
otto9due Error anomalo durante invio dati $.ajax Ajax 20
J [PHP] fatal error PHP 1
N [PHP] problema Parse error in file configurazione PHP 3
F Console Error jQuery 1
C PHP errore Fatal Error: Allowed Memory Size of ... Bytes Exhausted PHP 7
K [ASP] Errore: ADODB.Field error '800a0bcd' Classic ASP 1
Z HTTP ERROR 500 - La pagina non funziona - Joomla! Joomla 0
U [PHP] Fatal error: Call to a member function Query() PHP 1
U [PHP] Parse error: syntax error, unexpected variabile (T_VARIABLE) PHP 8
C [PHP] internal error paypal PHP 6
ANDREA20 [PHP] syntax error, unexpected PHP 4
Fuego2806 [PHP] Errore 500 Internal Server Error - sito Joomla! Joomla 10
ANDREA20 [PHP] syntax error, unexpected T_ELSE [era]urgentissimo] PHP 15
A [PHP] syntax error, unexpected T_STRING su html PHP 11
Antoyosh Fatal error con Wordpress WordPress 5
C Errore 500 (internal server error) PHP 1
G Fatal error: Uncaught Error: Call to undefined method UserController PHP 0
G Parse error: syntax error, unexpected '=' PHP 2
O Fatal error: Call to undefined function testNome() in C:\xampp\...\...\index.php on line 51 PHP 4
gandalf1959 Parse error: syntax error, unexpected T_VARIABLE PHP 2
A 80004005 - Unspecified Error Web Server 0
JackIlPazzo Fatal error: Call to a member function execute() on a non-object PHP 2

Discussioni simili