我正在努力找出导致这个问题的原因。我对Java和BlueJ完全陌生,但我已经研究了几个小时,无法找出问题的原因。不断收到错误消息“不兼容类型:泥水匠无法转换为学徒”。非常感谢您的帮助。
//程序的目的:创建一个混合阵列,以容纳两个不同的学徒对象——泥水匠和木匠//泥水匠和木匠//然后将每个对象的所有细节显示在屏幕上。
public class MixedLists
{
public static void main(String args[])
{
//Declaration of object list to hold 2 student objects
Apprentice [] apprenticeList = new Apprentice[2];
////////////////////////////////////////////////////////////////////
//Plasterer
//Taking in values
String NameIn, NumberIn, AddressIn, StudentIDIn, EmployerNameIn, FinalSem1GradeIn;
System.out.println("Entering data for Plasterer");
//Apprentice class attributes
System.out.print("\tEnter Name: ");
NameIn = EasyScanner.nextString();
System.out.print("\tEnter telephone number: ");
NumberIn = EasyScanner.nextString();
System.out.print("\tEnter Address: ");
AddressIn = EasyScanner.nextString();
System.out.print("\tEnter student id: ");
StudentIDIn = EasyScanner.nextString();
//Plasterer class attributes
System.out.print("\tEnter in Employer Name: ");
EmployerNameIn = EasyScanner.nextString();
System.out.print("\tEnter Final Semester 1 Grade: ");
FinalSem1GradeIn = EasyScanner.nextString();
//Initializing what is referenced by position 0 of the object list with a plasterer object
apprenticeList[0]=new Plasterer(NameIn, NumberIn, AddressIn, StudentIDIn, EmployerNameIn, FinalSem1GradeIn);
System.out.println("\n");
/////////////////////////////////////////////////////////////////
//Carpenter
String NameIn1,AddressIn1,Number1,StudentID1;
//additional variables
String awardSought,specialisation;
double gpaModuleGrade, industrialExperienceMark;
//Entering values for Carpenter
System.out.println("Entering data for Carpenter");
//Apprentice class attributes
System.out.print("\tEnter Name: ");
NameIn1 = EasyScanner.nextString();
System.out.print("\tEnter telephone number: ");
Number1 = EasyScanner.nextString();
System.out.print("\tEnter Address: ");
AddressIn1= EasyScanner.nextString();
System.out.print("\tEnter student id: ");
StudentID1= EasyScanner.nextString();
//Carpenter class attributes
System.out.print("\tEnter award sought: ");
awardSought = EasyScanner.nextString();
System.out.print("\tEnter specialist area: ");
specialisation = EasyScanner.nextString();
//Carpenter class attributes
System.out.print("\tEnter GPA Module Grade: ");
gpaModuleGrade = EasyScanner.nextString();
System.out.print("\tEnter industrial experience Grade: ");
industrialExperienceMark = EasyScanner.nextString();
//Initializing what is referenced by position 1 of the object list with a Carpenter object
apprenticeList[1]=new Carpenter(NameIn1, AddressIn1, Number1, StudentID1,awardSought,specialisation, gpaModuleGrade,industrialExperienceMark);
System.out.println("\n");
////////////////////////////////////////////////////////////////////
//for loop to display out contents of mixed object array
//Display out all information associated with Carpenter, Carpenter and CabinetMaker
System.out.println("Award Details for all Apprentices in the System\n");
for(int i = 0; i < apprenticeList.length; i++)
{
System.out.println(apprenticeList[i].printAwardDetails());
}
}
}
学徒班就是这样的
public abstract class Apprentice
{
//attributes
private String Name;
private String Number;
private String Address;
private String StudentID;
public Apprentice (String NameIn, String NumberIn, String AddressIn, String StudentIDIn)
{
Name = NameIn;
Number = NumberIn;
Address = AddressIn;
StudentID = StudentIDIn;
}
//Methods to read the attributes
public String getName()
{
return Name;
}
public String getNumber()
{
return Number;
}
public String getAddress()
{
return Address;
}
public String getStudentID ()
{
return StudentID ;
}
public void setName(String NameIn)
{
Name = NameIn;
}
public void setNumber(String NumberIn)
{
Number = NumberIn;
}
public void setAddress(String AddressIn)
{
Address = AddressIn;
}
public void setStudentID (String StudentIDIn )
{
StudentID = StudentIDIn;
}
}
你需要使用继承。
创建一个名为“工人”的类,然后泥水匠和学徒都应该继承该类。然后,你可以有一个包含泥灰工和学徒的工人名单。
或者如果学徒只是一种泥水匠,让学徒继承泥水匠(或者相反,如果泥水匠是一种学徒)
我有一个Java方法,他用来比较数据: 但是对于这行
我试图编译一个从SourceForge得到的仍在开发中的项目。这是它的地址:。https://sourceforge.net/p/groove/code/5475/tree/groove/trunk/我知道这个项目经过了很好的验证,它没有任何错误,但是当我要编译它的时候,我遇到了这个编译错误: 错误在这个文件的第370行:https://sourceforge.net/p/groove/code/
我试图通过在一个单独的线程上进行工作并返回所需的对象来更改JavaFX中的GUI。然而,在完成工作和任务之后。setOnSucceeded()在尝试检索创建的对象时被触发,并出现错误“不兼容类型:对象无法转换为VideoScrollPane类型”。 我认为这与原始类型有关,因为这是在听众中发生的,但环顾四周后,我找不到我想要的建议。 任何可以散发的光芒都将不胜感激。
问题内容: 我试图通过在单独的线程上进行工作并返回所需的对象来对JavaFX中的GUI进行更改。但是,在完成工作和task.setOnSucceeded()之后,我尝试检索创建的对象并得到错误“不兼容的类型:对象无法转换为VideoScrollPane类型”。 我认为这与原始类型有关,因为它发生在侦听器中,但是四处查看后,我找不到我想要的建议。 任何可以散发出的光将不胜感激。 问题答案: 这是因为
下面是我的代码:
我试图在if语句中调用一个方法,但我总是得到以下错误。 不兼容的类型:java.lang.String不能转换为boolean