Java

Не запускается код на Java.

Подскажите мне пожалуйста в чем беда кода. Можете его подправить?

import java.util.ArrayList;
import java.util.List;
class Comment{
private String text;
private int rating;
private List<Comment> replies;
public Comment(String text) {
this.text = text;
this.rating = 0;
this.replies = new ArrayList<>();
}
public void addReply(Comment reply) {
replies.add(reply);
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("(").append(rating).append(") ").append(text);
for (Comment reply : replies) {
sb.append("\n---").append(reply);
}
return sb.toString();
}
public void setText(String text) {
if (rating == 0) {
this.text = text;
} else {
throw new UnsupportedOperationException("Cannot edit a commented or rated comment.");
}
}
public void increaseRating() {
rating++;
}
public void decreaseRating() {
rating--;
}
public boolean canBeEdited() {
return rating == 0;
}
}
public class Publication {
private final String title;
private final List<String> tags;
private final List<Comment> comments;
private int rating;
public Publication(String title, List<String> tags, String content) {
this.title = title;
this.tags = tags;
this.comments = new ArrayList<>();
this.rating = 0;
}
public void addComment(Comment comment) {
comments.add(comment);
}
public String getTitle() {
return title;
}
public List<String> getTags() {
return tags;
}
public int getRating() {
return rating;
}
public void increaseRating() {
rating++;
}
public void decreaseRating() {
rating--;
}
public boolean canBeEdited() {
return rating == 0 && comments.isEmpty();
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("(").append(rating).append(") ").append(title);
for (Comment comment : comments) {
sb.append("\n").append(comment);
}
return sb.toString();
}
public static void main(String[] args) {
Publication publication = new Publication("История транзистора",
List.of("История", "IT", "электроника"),
"Дорога к твердотельным переключателям была долгой. "
+ "Она началась с открытия того, что определенные материалы странно ведут себя в присутствии электричества. "
+ "В 1874 году Фердинанд Браун опубликовал статью “О прохождении электрических токов через сульфиды металлов”. "
+ "И все завертелось...");
Comment comment1 = new Comment("Держите ссылку на то как работают светодиоды из карбида кремния [ввв.свет.ру]");
Comment reply1 = new Comment("Спасибо!");
Comment reply2 = new Comment("Thanks!");
comment1.addReply(reply1);
comment1.addReply(reply2);
Comment comment2 = new Comment("Это перевод? Пойду оригинал почитаю");
Comment reply3 = new Comment("а где ссылка на оригинал?");
Comment reply4 = new Comment("автор, добавь ссылку в начало статьи");
comment2.addReply(reply3);
reply3.addReply(reply4);
Comment comment3 = new Comment("Какую только дичь не писали в журналах 20-30гг пытаясь объяснить работу кристаллического детектора");
publication.addComment(comment1);
publication.addComment(comment2);
publication.addComment(comment3);
System.out.println(publication);
}
}
Все запускается без проблем.
Единственное, что у вас может быть не так, это название самого файла. У вас в файле 2 класса, публичный один - Publication. Вот файл и должен называться Publication.java, не Comment.java
СИ
Сергей И Анна Калугины
55 095
Лучший ответ
В коде шесть опечаток с кавычками. Лучше их самому проверять..

 import java.util.ArrayList; 
import java.util.List;

class Comment {
private String text;
private int rating;
private List replies = new ArrayList();

public Comment(String text) {
this.text = text;
}

public void addReply(Comment reply) {
replies.add(reply);
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("(").append(rating).append(") ").append(text);
replies.forEach(reply -> sb.append("\n---").append(reply));
return sb.toString();
}

public void setText(String text) {
if (rating == 0) this.text = text;
else throw new UnsupportedOperationException("Cannot edit a commented or rated comment.");
}

public void increaseRating() { rating++; }

public void decreaseRating() { rating--; }

public boolean canBeEdited() { return rating == 0; }
}

public class Publication {
private final String title;
private final List tags;
private final List comments = new ArrayList();
private int rating;

public Publication(String title, List tags, String content) {
this.title = title;
this.tags = tags;
}

public void addComment(Comment comment) { comments.add(comment); }

public String getTitle() { return title; }

public List getTags() { return tags; }

public int getRating() { return rating; }

public void increaseRating() { rating++; }

public void decreaseRating() { rating--; }

public boolean canBeEdited() { return rating == 0 && comments.isEmpty(); }

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("(").append(rating).append(") ").append(title);
comments.forEach(comment -> sb.append("\n").append(comment));
return sb.toString();
}

public static void main(String[] args) {
Publication publication = new Publication("История транзистора",
List.of("История", "IT", "электроника"),
"Дорога к твердотельным переключателям была долгой. "
+ "Она началась с открытия того, что определенные материалы странно ведут себя в присутствии электричества. "
+ "В 1874 году Фердинанд Браун опубликовал статью “О прохождении электрических токов через сульфиды металлов”. "
+ "И все завертелось...");
Comment comment1 = new Comment("Держите ссылку на то как работают светодиоды из карбида кремния [ввв.свет.ру]");
Comment reply1 = new Comment("Спасибо!");
Comment reply2 = new Comment("Thanks!");
comment1.addReply(reply1);
comment1.addReply(reply2);
Comment comment2 = new Comment("Это перевод? Пойду оригинал почитаю");
Comment reply3 = new Comment("а где ссылка на оригинал?");
Comment reply4 = new Comment("автор, добавь ссылку в начало статьи");
comment2.addReply(reply3);
reply3.addReply(reply4);
Comment comment3 = new Comment("Какую только дичь не писали в журналах 20-30гг пытаясь объяснить работу кристаллического детектора");
publication.addComment(comment1);
publication.addComment(comment2);
publication.addComment(comment3);
System.out.println(publication);
}
}
SD
Salamat Diushenkulov
89 538