如何修复以下错误?我需要快速的帮助。
线程“main”java.lang中出现异常。错误:未解决的编译问题:无法访问main类型的封闭实例。必须使用Main类型的封闭实例限定分配(例如x.new A(),其中x是Main的实例)。
位于com.common.Main.Main(Main.java:16)
这是我的代码供参考。如果我们解决了这个问题,那么“John”
应该只打印一次,而不是两次。如何限制“John”只打印一次
public class Main {
public static void main(String[] args) {
Set<Person> l = new HashSet<Person>();
l.add(new Person("John"));
l.add(new Person("John"));
l.add(new Person("Matt"));
l.add(new Person("Deepak"));
l.add(new Person("Chris"));
for (Iterator iterator = l.iterator(); iterator.hasNext();) {
Person person = (Person) iterator.next();
System.out.println(person.getName());
}
}
public class Person{
private String name;
public Person(String name) {
super();
this.setName(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
由于您的Person
类看起来不应该是内部类(即,它看起来不需要封闭的Main
类的关联实例),因此将其设置为静态(即Main
类的嵌套类,不需要封闭实例):
public static class Person { ...
或者将其移到您的Main
类之外。
编辑:
至于第二个问题,在Person
类中重写equals
和hashCode
,以便让HashSet
知道何时应将两个对象视为相同:
public boolean equals (Object other) {
if (!(other instanceof Person))
return false;
Person op = (Person) other;
return this.name.equals(op.name);
}
public int hashCode () {
return name.hashCode();
}
问题内容: 我收到此错误为- 无法访问类型为GeoLocation的封闭实例。 必须使用类型为GeoLocation的封闭实例来限定分配(例如xxA(),其中x是GeoLocation的实例)。 新的ThreadTask(i) 上将出现此错误。我不知道为什么会这样。任何建议将不胜感激。 问题答案: 嗨,我找到了一个解决方案;-) 发生此错误的原因是,您尝试创建内部类的实例 而不创建主类的实例。 要
我是编程新手,明年我将在大学学习它。在我的公共静态空虚主...我不能创建一个新的SimpleCircle。这个错误只发生在我的圆上。非常感谢你的帮助!:)
我在django rest auth中使用自定义寄存器序列化程序来添加注册时的新字段。 我在用户模型中有一个国家/地区模型和一个国家/地区字段,它是国家/地区的FK。 user.models user.serializers 自定义寄存器序列化器 以国家/地区为对象从客户端发送的示例数据 {用户名:“伯尼”,电子邮件:bernie@d.com,国家:{…},密码1:“密码”,密码2:“密码”} 但
我一直在尝试创建一个django项目,该项目拥有用户,并且这些用户可以添加他们创建的书籍的标题。但每次我输入书名(不在管理页面上)时,我都会出现这个错误 models.py
问题内容: 包含的封闭实例 下面是代码。是我要使用的对象,它给了我上面的错误。 目前尚不清楚原因。 问题答案: 您正在尝试使用非静态内部类而没有其所属的实例。 非静态内部类必须属于其父类的实例 您可能应该更改为普通类或静态内部类。 或者,您可以编写以创建属于该实例的内部类的实例。
问题内容: 出于教育目的,我尝试制作一个服务器和一个客户端,其中服务器从多个客户端接收数据并回显每条消息。问题是,当我尝试让服务器一次将回显发送到所有客户端时。 我搜寻并回答了许多类似的问题,但是没有一个对我有帮助。希望你能指出我的错误。提前致谢。 问题答案: 您的嵌套类需要外部类的一个实例,因为它不是静态的-但你不 具备 外部类的一个实例。 尝试制作两个嵌套类。看起来他们无论如何都不 需要 引用