请参考带变量的包? Java的

时间:2015-03-20 16:24:21

标签: java variables packages

我可以使用变量名来引用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()

编辑:建议的副本无关。它正在谈论为变量使用相同的名称作为包。我正在谈论引用带变量的嵌套包。

2 个答案:

答案 0 :(得分:2)

不,你不能那样做。您可以做的最好的方法是将方法定义为静态,并对相应的类进行静态导入。然后你可以直接调用那个方法。

这样的东西
import static stuff.biscuit.jelly.Sausages.*; 

然后在您的代码中使用

foo();

答案 1 :(得分:0)

您可以使用反射获取对方法的引用,并使用invoke(...)调用该方法。假定'香肠'是香肠类的一个实例:

Class cl = sausages.getClass();
Method myMethod = cl.getMethod("myMethod"); 
myMethod.invoke(params);

虽然当完成所有操作时,为什么不直接导入包/类并以这种方式调用方法?