java - 向我的数组列表添加新元素显示错误
问题描述
我正在尝试在我的数组列表中添加一个新元素,但它显示 er*or,我不知道为什么。我试图改变它,但错误并没有消失。我想不出别的东西。如果你想解决它,请帮助我。这是我的代码:
//main class
import java.util.ArrayList;
public class Ticket {
static ArrayList<T> arrayticket = new ArrayList <T>(); //T for Ticket( Generic Type)
public static void main(String[] args) {
BuyTicket ticket1 = new BuyTicket();
ticket1.BuyaTicket();
}
class T {
// instance variables
private String type;
private int RoutesOrDays;
private String kind;
private String name;
private String email;
private int TicketCode;
private String ExpirationDate;
//constructor
public T(String type, int RoutesOrDays, String kind, String name, String email, int TicketCode, String ExpirationDate) {
this.type = type;
this.RoutesOrDays = RoutesOrDays;
this.kind = kind;
name = " ";
email = " ";
TicketCode = 0;
ExpirationDate = " ";
}
//++setters aand getters
}
public class BuyTicket extends MyInterface {
//METHOD
int BuyaTicket() {
Save save_dataA = new Save();
save_dataA.Person3(type, hostOfRoutes, kind);
}
}
public class SaveData extends T {
private String name;
private String email;
private int code;
static AtomicInteger codeSequence = new AtomicInteger(); //Creates a new AtomicInteger with initial value 0
//contructor
public SaveData(String name, String email, int code ) {
name =" ";
email =" ";
this.code = codeSequence.incrementAndGet(); //Atomically increments by one the current value.
}
//contructor of super
public SaveData(String type, int RoutesOrDays, String kind, String name, String email, int TicketCode, String ExpirationDate) {
super(type, RoutesOrDays, kind, name, email, TicketCode, ExpirationDate);
}
void Person3(String type, int RoutesOrDays, String kind){
System.out.println("Type your full name.");
String name = input.nextLine();
System.out.println("Please type your email. ");
String email = input.nextLine();
code = codeSequence.incrementAndGet();
arrayticket.add(new T(type, RoutesOrDays, kind, code,email, name));
//here is the er*or
}
我对java很陌生,所以我可以改变什么来修复它???
解决方案
您说您是 Java 新手,但您仍然决定使用许多类、接口和对 Java 泛型的一些误解。我决定尽可能地简化你的代码,因为保持简单是一个非常好的编程规则。
我跳过了你的BuyTickets课,因为我不明白,我搬进T
了课堂Ticket
,把它变成了数据类,然后我让SaveData
课堂只负责收集数据。
还有一些奇怪的东西,比如我必须硬编码的一些参数,你只能添加一张票,但我希望这能帮助你继续前进
保存数据类
public class SaveData {
Scanner input;
public SaveData() {
input = new Scanner(System.in);
}
public Ticket buyTicket(String type, int routesOrDays, String kind) {
System.out.println("Type your full name.");
String name = input.nextLine();
System.out.println("Please type your email. ");
String email = input.nextLine();
return new Ticket(type, routesOrDays, kind, name, email);
}
}
和主要的票务类
import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicInteger;
public class Ticket {
static ArrayList<Ticket> arrayTicket = new ArrayList<>();
private String type;
private int routesOrDays;
private String kind;
private String name;
private String email;
private int ticketCode;
private String expirationDate;
static AtomicInteger codeSequence = new AtomicInteger();
public Ticket(String type, int routesOrDays, String kind, String name, String email) {
this.type = type;
this.routesOrDays = routesOrDays;
this.kind = kind;
this.ticketCode = codeSequence.incrementAndGet();
this.email = email;
this.name = name;
expirationDate = " ";
}
public static void main(String[] args) {
SaveData save = new SaveData();
String someType = "type";
int someRoute = -1;
String someKind = "kind";
arrayTicket.add(save.buyTicket(someType, someRoute, someKind));
for (Ticket ticket: arrayTicket) {
System.out.printf("Ticket [%d] for %s, %s\n", ticket.ticketCode,ticket.name,ticket.email);
}
}
}
推荐阅读
- c++ - 影响单元测试结果的全局变量问题
- python - 在列表中切片元组(python)
- arrays - 如果从数组中找到值,则从数组中放置值
- java - 如何将自定义 undertow HttpHandler 添加到 thorntail(fka.wildfly swarm)
- php - 消息:模块 'imagick' 已加载
- javascript - 使用 javascript API 在 Word 中交叉引用文档中的锚点和链接
- java - Java 卡 APDU 删除命令给出 '69' '85' 错误代码
- symfony - 查找新模板 电子邮件重置密码 FOS Fos 用户包
- python-2.7 - 在python中导入文件时出现导入错误
- model-view-controller - 如何将数据从列表复制到列表