Подскажите мне пожалуйста в чем беда кода. Можете его подправить?
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);
}
}
Java
Не запускается код на Java.
Все запускается без проблем.
Единственное, что у вас может быть не так, это название самого файла. У вас в файле 2 класса, публичный один - Publication. Вот файл и должен называться Publication.java, не Comment.java
Единственное, что у вас может быть не так, это название самого файла. У вас в файле 2 класса, публичный один - Publication. Вот файл и должен называться Publication.java, не Comment.java
В коде шесть опечаток с кавычками. Лучше их самому проверять..
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);
}
}
Похожие вопросы
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- Код на java.
- Написание кода на Java
- Нужен код на Java
- Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?
- Java код долго запускается
- Прошу помощи код Java
- Как для андроид, в java коде, имитировать нажатие кнопки
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов
- Простейший код java вопрос