Java 无法实例化类型错误。。。但代码是对的?
所以我有一个大问题。当我尝试创建Robot类的新实例时,出现了“无法实例化Robot类型”错误。我完全理解这个错误的含义和发生的时间,但我不明白为什么我会得到它。我发誓,我的密码是正确的。也许代码中有一个小错误我就是看不到?有什么帮助吗 获取错误的代码是RobotWorld类:Java 无法实例化类型错误。。。但代码是对的?,java,instantiation,instantiationexception,Java,Instantiation,Instantiationexception,所以我有一个大问题。当我尝试创建Robot类的新实例时,出现了“无法实例化Robot类型”错误。我完全理解这个错误的含义和发生的时间,但我不明白为什么我会得到它。我发誓,我的密码是正确的。也许代码中有一个小错误我就是看不到?有什么帮助吗 获取错误的代码是RobotWorld类: public class RobotWorld extends JPanel{ Robot robot; private static final long serialVersionUID = 1L; p
public class RobotWorld extends JPanel{
Robot robot;
private static final long serialVersionUID = 1L;
public RobotWorld(){
robot = new Robot();
this.setBackground(Color.GREEN);
}
}
而Robot.java类是:
public class Robot {
public Robot(){
}
}
我在RobotWorld.java代码中的行“robot=newrobot();”上得到了错误。基本上,只要我尝试在RobotWorld中实例化一个新的Robot对象,它就会给我一个错误。当我创建实例变量robot时,我甚至尝试过这样做,但仍然不起作用
这两个类都在同一个包中,所以我不认为这可能是某种类范围错误。有人能告诉我为什么我会犯这个错误吗
注意,我重新启动了Eclipse几次,以确保它不仅仅是Eclipse出了问题
谢谢大家! 更新:
您可能已经导入了import com.sun.glass.ui.Robot代码>是一个抽象类,无法实例化
确保删除错误Robot类的任何导入语句
<>你可能想考虑重命名你自己的机器人类,以免混淆它们。你是否可能在多个地方意外地定义了<代码>机器人< /代码>?例如,RobotWorld
是否可能包含一个private interface Robot{…}
之类的东西,您打算删除它,然后将其忘记?(要测试这一点,请单击Robot Robot;
中的Robot
,然后点击F3转到Eclipse认为适用的声明。)如果他的类代表一个Robot,那么他为什么要重命名它呢?这就是名称空间的用途即使他使用的是Java.awt.Robot
,也不应该出现错误,因为awt.Robot不是抽象的,应该是可实例化的。你不能像那样实例化Robot类,你会得到一个编译器错误,因为你没有捕获它可能抛出的AWTException。我们不知道他的确切错误,因为他没有张贴。此外,这只是一项防止混淆的建议。我不明白你为什么会投反对票。鲁比,实际上看起来我是对的,他导入了错误的机器人类,只是他似乎导入了import com.sun.glass.ui.Robot代码>我否决了,因为我不认为这是一个有效的答案。他在标题中指定了错误“无法实例化类型”。新的java.awt.Robot提供了一个AWTException。我明白了,这是有道理的。我已经更新了我的答案,以纠正这个错误,我认为这可能是直接的问题。