引用带有变量的包? Java

Refer to a package with a variable? Java

我可以用变量名引用 java 中的特定包吗?

假设我想在 stuff.biscuit.jelly.sausages.foo() 的嵌套结构中访问方法 foo(),(其中 jelly 是一个包,sausages 是一个 class)

我可以设置一个变量 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()

?

编辑:提议的重复是无关的。它是在谈论对变量使用与包相同的名称。我说的是引用带有变量的嵌套包。

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

类似

import static stuff.biscuit.jelly.Sausages.*; 

然后在您的代码中只需使用

foo();

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

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

尽管一切都说完了,为什么不直接导入 package/class 并以这种方式调用方法呢?