在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办法是将public class改为public static class.
Java中 静态方法是不能直接调用非静态方法的。
将内部类设置成静态类。
public class A {
public static class Holder<T>{
private T a;
public Holder(T q)
{
a=q;
}
public void set(T a)
{
this.a=a;
}
public T getT() {
return a;
}
}
public static class Example {
public String a="Get for it!";
public void print()
{
System.out.println(a);
}
}
public Example example()
{
return new Example();
}
public static void main(String[] args) {
Holder<A.Example> exHolder=new Holder<A.Example>((new A()).example());
Example example=exHolder.getT();
example.print();
}
}