不能从静态方法引用java非静态方法
我正试图打印我的HighRights对象,但它不允许我。。一直说不能从静态方法引用非静态方法。我基本上希望它打印出所有添加的值(“AAA”、“AAACCA”等)
import java.util.*;
public class Ex8 {
public void printHighUsers(ArrayList<SecurityRights> a){
for(SecurityRights m: a)
{
if(m instanceof HighRights)
{
System.out.println(HighRights.getName());
}
}
}
public static void main(String [] a){
ArrayList<SecurityRights> ma=new ArrayList<SecurityRights>();
ma.add(new HighRights("AAA"));
ma.add(new HighRights("AACCA"));
ma.add(new HighRights("BB"));
ma.add(new HighRights("AaaAA"));
new Ex8().printHighUsers(ma);
}
}
人权类:
public class HighRights extends SecurityRights
{
private String name;
public HighRights(String n){
super(true);
this.name = n;
}
public String getName(){
return name;
}
public static void main(String[] a){
HighRights s= new HighRights("Lisa");
System.out.print(s.getName() +" "+s.getSecret());
}
}
谢谢
# 1 楼答案
在
您试图静态调用
getName()
,但它不是static
方法你想要的是
换句话说,您需要强制转换对
HighRights
的引用,以便getName()
方法可以访问并在引用上调用它,而不是静态地调用它