Ошибка «не может быть применена к ...» в строковых объектах перечисления - PullRequest
0 голосов
/ 20 июня 2019

Я исследовал и исправил форматирование, создал геттеры, сеттеры и конструкторы, но он все еще возвращает ошибку, из-за которой я не могу применить свои строковые объекты. Я прошу прощения за то, как я формулирую свой вопрос, но я не знаю, как четко сформулировать свою проблему, потому что я не понимаю ее достаточно хорошо, чтобы знать, как объяснить это также хорошо.

public class Enum {

public enum DictionaryFields {
    DistinctAdjective1("Distinct", "[adjective]", "Familiar. Worked in Java"),
    DistinctAdjective2("Distinct", "[adjective]", "Unique. No duplicates. Clearly different or of different kind."),
    DistinctAdverb("Distinct", "[adverb]", "Uniquely. Written \"distinctly\"."),
    DistinctNoun1("Distinct", "[noun]", "A keyword in this assignment."),
    DistinctNoun2("Distinct", "[noun]", "An advanced search option."),
    PlaceholderAdjective("Placeholder", "[adjective]", "To be updated...");


}

private final String generalNote = "DICTIONARY 340 JAVA";
private String definition;
private String word;
private String partOfSpeech;

private DictionaryFields(String word, String partOfSpeech, String definition) {
    this.word = word;
    this.partOfSpeech = partOfSpeech;
    this.definition = definition;
}

public String getWord() {
    return word;
}

public void setWord {
    this.word = word;
}

public String getPartOfSpeech() {
    return partOfSpeech;
}

public void setPartOfSpeech() {
    this.partOfSpeech = partOfSpeech;
}

public String getDefinition() {
    return definition;
}

public void setDefinition(String definition) {
    this.definition = definition;
}

}

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Есть некоторые синтаксические проблемы с вашим кодом.В частности, вы определяете класс с именем «Enum», но на самом деле вы должны определять перечисление как:

public enum DictionaryFields {
    DistinctAdjective1("Distinct", "[adjective]", "Familiar. Worked in Java"),
    DistinctAdjective2("Distinct", "[adjective]", "Unique. No duplicates. Clearly different or of different kind."),
    DistinctAdverb("Distinct", "[adverb]", "Uniquely. Written \"distinctly\"."),
    DistinctNoun1("Distinct", "[noun]", "A keyword in this assignment."),
    DistinctNoun2("Distinct", "[noun]", "An advanced search option."),
    PlaceholderAdjective("Placeholder", "[adjective]", "To be updated...");



    private final String generalNote = "DICTIONARY 340 JAVA";
    private String definition;
    private String word;
    private String partOfSpeech;

    private DictionaryFields(String word, String partOfSpeech, String definition) {
        this.word = word;
        this.partOfSpeech = partOfSpeech;
        this.definition = definition;
    }

    public String getWord() {
        return word;
    }

    public void setWord() {
        this.word = word;
    }

    public String getPartOfSpeech() {
        return partOfSpeech;
    }

    public void setPartOfSpeech() {
        this.partOfSpeech = partOfSpeech;
    }

    public String getDefinition() {
        return definition;
    }

    public void setDefinition(String definition) {
        this.definition = definition;
    }

}

Вы должны были определить конструктор внутри «DictionaryFields».Они были настроены так, что вы на самом деле определяли конструктор для класса «Enum».

0 голосов
/ 20 июня 2019

Конструктор вашего enum не входит в сферу действия enum. Проблема та же самая с полями и получателями / установщиками. Переместите их в блок enum, и все будет хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...