- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名初学者 Java 程序员,我遇到了一个问题。
我已经用“//!!”标记了代码的关键区域,我已经包含了程序的其余部分以帮助解决任何问题。
我试图将存储在类 Clients 的链表客户端中的 Person 实例存储到类 Car 的实例中称为乘客的链表中。然而,我经常遇到需要提供字符串和整数(存储在 Person 对象中的两个值)的错误。但我想,因为我已经选择了 Person 类,所以这会被转移吗?有谁知道我哪里出错了?
总而言之,我试图将链接列表(在客户端中)中的对象(人)的一个实例复制到另一个类(汽车)中相同对象的另一个链接列表中,该类本身就是一个实例(有3个)汽车对象)
非常感谢任何帮助。
这是包含乘客链接列表的 Car 类
import java.io.*;
import java.util.*;
public class Car implements Serializable
{ private int id;
private String pilot;
private int stops;
private LinkedList<Person> passengers = new LinkedList<Person>(); // !! `Here is the linked list passengers`
private double rate = 10.00;
public int scannableId = this.id;
//
public Car(int id, String pilot, int stops)
{ this.id = id;
this.pilot = pilot;
this.stops = stops; }
public void go()
{ System.out.println("CarManager" + id + " with " + pilot);
for (int stop = 0; stop < stops; stop++)
{ charge(stop);
if (stopAt(stop))
{ showStop(stop);
pay(stop); }}}
private boolean stopAt(int i)
{ for (Person person: passengers)
if (person.uses(i))
return true;
return false; }
private void showStop(int i)
{ String s = " Stop " + i + "\n";
String on = on(i);
if (!on.isEmpty())
s += " On: " + on + "\n";
System.out.print(s); }
private String on(int i)
{ String s = "";
for (Person person: passengers)
if (person.getsOn(i))
s += person.handle() + " ";
return s; }
public int getId() {
return this.id;
}
public int printId() {
System.out.print(this.id);
return this.id;
}
public int getStops() {
return this.stops;
}
public Person AddPassenger(Person newpassenger) {
newpassenger = passengers.add(new Person(newpassenger)); // !! This is where I try add a new passenger, however I'm getting an error stating that I need to provide a String and int, the parameters of the Person class.
}
这是 Person 类
import java.io.*;
import java.text.*;
public class Person implements Serializable
{ private String name;
private int id;
private double cash = 100.00;
private int start = 0;
private int end = 0;
private double charge = 0;
public Person(String name, int id)
{ this.name = name;
this.id = id + 100; }
public boolean uses(int stop)
{ return getsOn(stop) || getsOff(stop); }
public boolean getsOn(int stop)
{ return start == stop; }
public int giveStops() {
System.out.println(this.start);
System.out.println(this.end);
return start;
}
public void setStart (int start) {
this.start = start;
}
public void setOff (int stop) {
this.end = stop;
}
public Person getPerson () {
Person person = this.Person;
return person;
}
public boolean getsOff(int stop)
{ return end == stop; }
public String handle()
{ return name + id; }
public double readCash() {
return this.cash;
}
public int getId() {
return this.id;
}
public String getName() {
return this.name;
}
@Override
public String toString() {
String result = " " + this.name + " (Scuba" + this.id + ") has " + formatted(this.cash);
return result;
}
private String formatted(double amount)
{ DecimalFormat twoD = new DecimalFormat("$###,##0.00");
return twoD.format(amount); }
public boolean matches(String name)
{ return this.name.equals(name) || name.equals(this.name + this.id); }
}
这里是carManager类,它包含Car对象的链表。
import java.io.*;
import java.util.*;
public class CarManager implements Serializable
{ private LinkedList<Car> cars = new LinkedList<Car>();
private Clients clients = new Clients();
public CarManager(){
setup();
menu();
}
// !! Here is where the cars are created
public void setup()
{ cars.add(new Car(1, "Ed", 2));
cars.add(new Car(2, "Fred", 7));
cars.add(new Car(3, "Freda", 5)); }
public void menu() {
char choice;
while ((choice = readChoice()) !='x' ) {
switch(choice) {
case 'a': clients.makePerson(); break;
case 's': clients.showClients(); break;
case 'r':clients.removeClient(); break;
case 'b': findCar(); break;
case 'c': clients.getClient(); break;
default: showMenu();
}
}
}
private int nextInt() {
return In.nextInt();
}
public void findCar() {
System.out.print("Car: ");
int searchid = In.nextInt();
boolean carfound = false;
for (Car i: cars)
{
if (searchid == i.getId())
{
carfound = true;
System.out.println(" Stops 0-" + i.getStops());
getClientId();
Car thecar = i;
}
if (carfound == false)
System.out.println(" No such car");
}
}
public void getClientId() {
clients.theSiv();
}
private void showMenu() {
System.out.println("The menu choices are ");
System.out.println(" a: add a client");
System.out.println(" r: remove a client ");
System.out.println(" b: make a booking");
System.out.println(" g: go (run the s)");
System.out.println(" s: show the clients");
System.out.println(" f: store and exit");
System.out.println(" x: exit");
}
private char readChoice() {
System.out.print("Your choice: ");
return In.nextChar();
}
public void exit() {
System.exit(0);
}
}
这是 Clients 类,它包含链接列表客户端,其中包含我想要添加到 Car 实例的 Person 实例
import java.io.*;
import java.util.*;
public class Clients implements Serializable
{ private LinkedList<Person> clients = new LinkedList<Person>();
private int id = 1;
public Clients()
{ clients.add(new Person("Homer", id++));
clients.add(new Person("Marge", id++));
}
public void makePerson(){
clients.add(createPerson());
}
public void removeClient() {
String searchname = readName();
boolean removed = false;
for (Person i:clients)
if (i.matches(searchname)){
clients.remove(i);
removed = true;
}
if (removed == false)
System.out.println(" No such client");
}
public void theSiv() {
System.out.println(" CarManager id: ");
String s = In.nextLine();
boolean isValidInteger = false;
char choice = 'p';
int foundid = 0;
boolean exists = false;
int searchid = 0;
try
{
int i = Integer.parseInt(s);
isValidInteger = true;
// if (isValidInteger = true)
searchid = i;
}
catch (NumberFormatException ex)
{
choice = s.charAt(0);
}
if (choice != 'x') {
for (Person b:clients)
if (b.getId() == searchid){
exists = true;
giveStops(b);
}
if(exists == false) {
System.out.println(" No such client");
resartTheSiv();
}
}
}
public void resartTheSiv(){
theSiv();
}
public int giveStops(Person i) {
String input;
System.out.println(" Trip: ");
input = In.nextLine();
String[] split = input.split(" +");
int start = Integer.parseInt(split[0]);
int stop = Integer.parseInt(split[1]);
i.setStart(start);
i.setOff(stop);
i.addPassenger(i); `// !! Here is where I try to add the selected instance of Person to car by first calling a method in Person to send itself to the passenger linked list.`
resartTheSiv();
return start;
}
public void getClient() {
System.out.print(" CarManager id: ");
char choice;
int searchid = In.nextInt();
boolean exists = false;
while ((choice = In.nextChar()) !='x' ){
for (Person i:clients)
if (i.getId() == searchid){
exists = true;
System.out.println("found client");
}
if (exists == false)
System.out.println(" No such client");
}
}
public Person createPerson()
{
String name = readName();
Person p = new Person(name, id++);
System.out.println(" Hi " + p.getName() + ", " + "you are CarManager" + p.getId());
return p;
}
private String readName() {
System.out.print(" Name: ");
return In.nextLine();
}
public void showClients() {
for (Person i: clients)
System.out.println(i);
}
}
这里是根类,这里是程序运行的地方
import java.io.*;
public class Root
{ public Root() {
new CarManager();
}
public static void main(String[] args)
{ new Root(); }
private CarManager carManager;
}
如果这也有帮助的话,这里是处理输入的地方
import java.util.*;
public class In
{ private static Scanner in = new Scanner(System.in);
public static String nextLine()
{ return in.nextLine(); }
public static char nextChar()
{ return in.nextLine().charAt(0); }
public static int nextInt()
{ int i = in.nextInt();
in.nextLine();
return i; }
public static double nextDouble()
{ double d = in.nextDouble();
in.nextLine();
return d; }
}
最佳答案
仅对乘客调用 .add
怎么样?无需构造新的 Person 对象或以任何方式设置乘客的值。
public void AddPassenger(Person newpassenger) {
passengers.add(newpassenger);
}
还有一个小注意事项 - 通常方法名称都是驼峰式大小写,因此最好调用方法 addPassenger
而不是 AddPassenger
关于java - 在java中将类的实例存储在另一个类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29481190/
我正在运行一个辅助角色,并检查 Azure 上托管的存储中是否存在数据。当我将连接字符串用于经典类型的存储时,我的代码可以正常工作,但是当我连接到 V2 Azure 存储时,它会抛出此异常。 “远程服
在我的应用程序的主页上,我正在进行 AJAX 调用以获取应用程序各个部分所需的大量数据。该调用如下所示: var url = "/Taxonomy/GetTaxonomyList/" $.getJSO
大家好,我正在尝试将我的商店导入我的 Vuex Route-Gard。 路由器/auth-guard.js import {store} from '../store' export default
我正在使用 C# 控制台应用程序 (.NET Core 3.1) 从 Azure Blob 存储读取大量图像文件并生成这些图像的缩略图。新图像将保存回 Azure,并将 Blob ID 存储在我们的数
我想将 Mlflow 设置为具有以下组件: 后端存储(本地):在本地使用 SQLite 数据库存储 Mlflow 实体(run_id、params、metrics...) 工件存储(远程):使用 Az
我正在使用 C# 控制台应用程序 (.NET Core 3.1) 从 Azure Blob 存储读取大量图像文件并生成这些图像的缩略图。新图像将保存回 Azure,并将 Blob ID 存储在我们的数
我想将 Mlflow 设置为具有以下组件: 后端存储(本地):在本地使用 SQLite 数据库存储 Mlflow 实体(run_id、params、metrics...) 工件存储(远程):使用 Az
我的 Windows 计算机上的本地文件夹中有一些图像。我想将所有图像上传到同一容器中的同一 blob。 我知道如何使用 Azure Storage SDKs 上传单个文件BlockBlobServi
我尝试发出 GET 请求来获取我的 Azure Blob 存储帐户的帐户详细信息,但每次都显示身份验证失败。谁能判断形成的 header 或签名字符串是否正确或是否存在其他问题? 代码如下: cons
这是用于编写 JSON 的 NeutralinoJS 存储 API。是否可以更新 JSON 文件(推送数据),而不仅仅是用新的 JS 对象覆盖数据。怎么做到的??? // Javascript
我有一个并行阶段设置,想知道是否可以在嵌套阶段之前运行脚本,所以像这样: stage('E2E-PR-CYPRESS') { when { allOf {
我想从命令行而不是从GUI列出VirtualBox VM的详细信息。我对存储细节特别感兴趣。 当我在GUI中单击VM时,可以看到包括存储部分在内的详细信息: 但是到目前为止,我还没有找到通过命令行执行
我有大约 3500 个防洪设施,我想将它们表示为一个网络来确定流动路径(本质上是一个有向图)。我目前正在使用 SqlServer 和 CTE 来递归检查所有节点及其上游组件,只要上游路径没有 fork
谁能告诉我 jquery data() 在哪里存储数据以及何时删除以及如何删除? 如果我用它来存储ajax调用结果,会有性能问题吗? 例如: $("body").data("test", { myDa
有人可以建议如何为 Firebase 存储中的文件设置备份。我能够备份数据库,但不确定如何为 firebase 存储中的文件(我有图像)设置定期备份。 最佳答案 如何进行 Firebase 存储的本地
我最近开始使用 firebase 存储和 firebase 功能。现在我一直在开发从功能到存储的文件上传。 我已经让它工作了(上传完成并且文件出现在存储部分),但是,图像永远保持这样(永远在右侧加载)
我想只允许用户将文件上传到他们自己的存储桶中,最大文件大小为 1MB,仍然允许他们删除文件。我添加了以下内容: match /myusers/{userId}/{allPaths=**} { al
使用生命周期管理策略将容器的内容从冷访问层移动到存档。我正在尝试以下策略,希望它能在一天后将该容器中的所有文件移动到存档层,但事实并非如此在职的。我设置了选择标准“一天未使用后”。 这是 json 代
对于连接到 Azure 存储端点,有 http 和 https 两个选项。 第一。 https 会带来开销,可能是 5%-10%,但我不支付同一个数据中心的费用。 第二。 http 更快,但 Auth
有人可以帮我理解这一点吗?我创建了Virtual Machine in Azure running Windows Server 2012 。我注意到 Azure 自动创建了一个存储帐户。当我进入该存
我是一名优秀的程序员,十分优秀!