У меня есть основной класс под названием User реализован следующим образомдва метода конструктора класса
package edu.uoc.dpoo;
import java.util.ArrayList;
import java.util.List;
public class User {
private String username;
private String password;
private String fullName;
private Platform platform;
private List<Message> inBox;
private List<Message> outBox;
public User(String username, String password, String fullName) {
this.username = username;
this.password = password;
this.fullName = fullName;
inBox = new ArrayList<Message>();
outBox = new ArrayList<Message>();
}
public User() {
username="";
password="";
fullName="";
}
public String getUserName() {
return username;
}
public String getPassword() {
return password;
}
public String getFullName() {
return fullName;
}
public void setUserName(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setFullName(String fullname) {
this.fullName = fullname;
}
public boolean checkPassword(String password){
if (password.equals(this.password)){
return true;
}else
{
return false;
}
}
public List<Message> getMessages() {
return null;
}
public Organizer asOrganizer(){
Organizer ObjetoO = new Organizer(username,password,fullName);
return ObjetoO;
}
public Participant asParticipant(){
Participant ObjetoP = new Participant(username,password,fullName);
return ObjetoP;
}
public Message sendMessage(String to,String Subject,String message){
return null;
}
public String toString() {
return null;
}
@Override
public boolean equals (Object o) {
boolean prueba = false;
if ((o != null) && (o instanceof User)) {
User p = (User) o;
if (this.username == null && this.password == null && this.fullName == null) {
prueba = (p.username == null);
prueba = (p.password == null);
prueba = (p.fullName == null);
}
else {
prueba = this.username.equals(p.username);
prueba = this.password.equals(p.password);
prueba = this.fullName.equals(p.fullName);
}
}
return prueba;
}
public List<Competition> myCompetitions(){
return null;
}
User(User u1) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
И два класса, которые наследуют от пользователя, которые Организатор и Участник осуществляется следующим образом
Организатор
package edu.uoc.dpoo;
import java.util.ArrayList;
import java.util.List;
public class Organizer extends User {
private List<Competition> competitions;
public Organizer(String username, String password, String fullName) {
super(username, password, fullName);
competitions = new ArrayList<Competition>();
}
public boolean removeSubmission(Submission submission){
return true;
}
public boolean sendMessage(Competition competition, String subject, String message){
return true;
}
public Competition newCompetition(String tittle,float target){
return null;
}
public void closeCompetition(Competition competition){
}
}
Participant
package edu.uoc.dpoo;
import java.util.ArrayList;
import java.util.List;
public class Participant extends User {
private List<Competition> competitions;
private List<Submission> submission;
public Participant(String username, String password, String fullName) {
super(username, password, fullName);
competitions = new ArrayList<Competition>();
submission = new ArrayList<Submission>();
}
public Submission submitPrediction(Competition competition, float prediction){
return null;
}
public List<Submission> getSubmissions(){
return null;
}
void asParticipant(Submission aThis) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
Меня попросили реализовать методы asOrganizer и asParticipant класса User. Эти методы должны создавать объект определенного класса и инициализировать родительский класс данными объекта User. Для выполнения этой задачи вам предлагается реализовать конструктор копирования класса User.
Я создаю объекты в этих двух методов, которые просят меня, но я не должен делать что-то хорошо в конструкторе, потому что JUnit не удается мне
добавляю JUnit, который не мне
@Test
public void userCopyConstructor() {
Platform platform = new Platform();
User u1=platform.registerUser(username1, password1, fullName1);
// User is not NULL
assertNotNull(u1);
// Get a participant object from user object
User u2 = new User(u1);
assertNotNull(u2);
assertEquals(u1, u2);
}
Моя проблема возникает в этой точке
// Get a participant object from user object
User u2 = new User(u1);
assertNotNull(u2);
assertEquals(u1, u2);
«потому что junit не справляется со мной» - Можете ли вы предоставить более подробную информацию? – bradimus
какая именно проблема? Как этот код связан с этим? пожалуйста, предоставьте [mcve] – ItamarG3
, это похоже на большое нарушение принципа открытого/закрытого ... в любое время, когда вы захотите добавить «другую версию» пользователя, вам нужно будет создать класс и изменить пользователя «asNewThing» impl? – Kritner