我可以使用变量名来引用java中的特定包吗?
说我想在foo()
的嵌套结构中访问方法stuff.biscuit.jelly.sausages.foo()
,(其中jelly
是一个包,sausages
是一个类)
我可以设置var
变量var = stuff.biscuit.jelly.sausages
,然后通过以下方式访问foo()
:
var.foo()
? (或类似的东西)
编辑:
关于进口,如果我想使用许多不同的foo()方法的任何建议,例如:
stuff.biscuit.jelly.cherry.foo()
stuff.biscuit.jelly.apple.foo()
stuff.biscuit.jelly.strawberry.foo()
编辑:建议的副本无关。它正在谈论为变量使用相同的名称作为包。我正在谈论引用带变量的嵌套包。
答案 0 :(得分:2)
不,你不能那样做。您可以做的最好的方法是将方法定义为静态,并对相应的类进行静态导入。然后你可以直接调用那个方法。
像
这样的东西import static stuff.biscuit.jelly.Sausages.*;
然后在您的代码中使用
foo();
答案 1 :(得分:0)
您可以使用反射获取对方法的引用,并使用invoke(...)调用该方法。假定'香肠'是香肠类的一个实例:
Class cl = sausages.getClass();
Method myMethod = cl.getMethod("myMethod");
myMethod.invoke(params);
虽然当完成所有操作时,为什么不直接导入包/类并以这种方式调用方法?