[英]Accesing static variable from another class in java
我在多线程服务器中将队列实现为链表。 我想从另一个类访问此队列。 两个类都在同一个包中。 我尝试将此队列作为公共静态并通过getter访问它,但没有成功可以有人告诉我究竟是什么问题。
这是我的代码:队列声明:
public static Queue<Request> q=new ConcurrentLinkedQueue<Request>();
public static void setQ(Queue<Request> q) {
Connection.q = q;
}
public static Queue<Request> getQ() {
return q;
}
访问队列:
Queue<Request> queue=new ConcurrentLinkedQueue<Request>();
queue=Connection.getQ();
在连接线程中向队列添加值
q.add(r);
您可以使用符号ClassName.memberName
直接访问另一个类的public static
成员:
public class Foo {
public static String bar = "hi there";
}
public class Thing {
public static void main(String[] args) {
System.out.println(Foo.bar); // "hi there"
}
}
public static
数据成员通常不是一个好主意(除非他们是final
),但如果你需要一个,那就是你如何做到的。
您应该能够直接访问,或使用静态getter方法...
如果这是你的队列类......
public class Queue {
public static LinkedList myList = new LinkedList();
public static ListedList getMyList(){
return myList;
}
}
然后你可以访问你的列表,调用Queue.myList
或Queue.getMyList()
- 两者都会做同样的事情。 使用getter方法的好处是您可以控制对列表的访问,例如通过使方法synchronized
,防止对列表的调用乱序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.