Java – Ongeldige methodeaangifte; Retourtype Vereist

Op een Java OOP-project kreeg ik drie fouten op mijn constructeur:

. \ Voter.java:14: Fout: ongeldige methode-verklaring; Retourtype
Vereist

. \ Kandidaten.java:7: Fout: ongeldige methodeaangifte; Retourtype
Vereist

. \ Kandidaten.java:14: Fout: ongeldige methodeaangifte; Retourtype
Vereist

Codes voor Constructor:

public class Voter{
    private String name;
    private int votNum;
    private int precint;
    public Voter(String name, int votNum, int precint)
    {
        this.name = name;
        this.votNum = votNum;
        this.precint = precint;
    }
    public setDetails(String name, int votNum, int precint)
    {
        this.name = name;
        this.votNum = votNum;
        this.precint = precint;
    }...}
public class Candidates
{
    public String candName;
    private int position;
    private int totalVotes;
    public Candidate (String candName, int position, int totalVotes)
    {
        this.candName = candName;
        this.position = position;
        this.totalVotes = totalVotes;
    }
    public setDetails (String candName, int position, int totalVotes)
    {
        this.candName = candName;
        this.position = position;
        this.totalVotes = totalVotes;
    }...}

Ik verklaarde mijn constructeurs als deze:

public class MainClass{
    public static void main(String[] args){
        System.out.println("Previous voter's info: ");
        Voter vot1 = new Voter("voter name", 131, 1);
        System.out.println("The Candidates: ");
        Candidates cand1 = new Candidates("candidate name", 1, 93);
    }
}

Is er iets dat ik heb gemist?


Antwoord 1, autoriteit 100%

In je methode setDetailsheb je niets gespecificeerd voor het retourtype, als het niets retourneert, specificeer dan void

Voor de klasse Voter

public void setDetails(String name, int votNum, int precint)

voor Candidatesklas

public void setDetails (String candName, int position, int totalVotes)

Nog iets anders, (Dankzij Frank Pavageau)is je klasnaam Candidatesen je hebt de constructor gedefinieerd met Candidatezonder s, daarom wordt het als een normale methode beschouwd en zou dus een soort retour. U hernoemt uw constructor als Candidates, of hernoemt uw klas als Candidate, wat beter is.


Antwoord 2

Uw Voter.setDetails-functie heeft geen retourtype. Als je niet wilt dat het retourneert, geef dan het retourtype op als void

public void setDetails(String name, int votNum, int precint)
{
    this.name = name;
    this.votNum = votNum;
    this.precint = precint;
}

Antwoord 3

voeg een retourtype toe aan al je methoden in je kiezersklasse.

Momenteel heb je hier in je code slechts één methode showDetails()getoond die geen retourtype heeft. Er zullen zeker ook andere methoden zijn waarvoor je geen retourtype hebt opgegeven.


Antwoord 4

invalid method declaration; return type required

Foutbericht zegt het duidelijk; je moet het retourtype van elke methode opgeven. Als er geen retourtype is, geef dan gewoon ongeldig.


Antwoord 5

Methode moet een retourtype hebben dat zegt over het type retourwaarde (als er iets wordt geretourneerd door de methode).

Als er niets wordt geretourneerd, specificeer dan void.

Dit is precies wat er ontbreekt in uw setDetails-methode.

Other episodes