我有两个类,并且想要在另一个类中包含一个类的静态实例,并通过第一个类访问第二个类的静态字段。如何正确访问静态成员类?
这样我就可以拥有不同的同名实例。
Class A
{
public static package1.Foo foo;
}
Class B
{
public static package2.Foo foo;
}
//package1
Foo
{
public final static int bar = 1;
}
// package2
Foo
{
public final static int bar = 2;
}
// usage
assertEquals(A.foo.bar, 1);
assertEquals(B.foo.bar, 2);
这个工作,但我得到一个警告“静态字段Foo.bar shoudl静态访问”。 有人可以解释为什么这是,并提供一个“正确的”实现。
我知道我可以直接访问静态实例,但如果你有很长的包层次,即得到丑:
assertEquals(net.FooCorp.divisions.A.package.Foo.bar, 1);
assertEquals(net.FooCorp.divisions.B.package.Foo.bar, 2);
谢谢,就是这样做,即使它不是“java方式”。我知道这是可能的,因为我可以创建静态的内部类,它不会给出错误,但这将是一个维护噩梦,因此正确地劝阻。 – fijiaaron 2008-09-18 23:06:05