【发布时间】:2019-04-24 13:01:17
【问题描述】:
我有两个班级 A 和 B 一个类包含一个方法,该方法具有一些局部变量。 现在我想在 B 类中获取特定变量的数据类型。 你能帮我解决这个问题吗?
我研究了java反射。但是我发现我无法通过使用反射来实现这一点,因为局部变量在运行时存储在堆栈中。而反射只能获取实例或类变量。
for example,
class A{
method1(){
variable1;
}
}
class B{
method 2(){
fetch variable1;
}
}
我想要 variable1 的数据类型作为结果。
有什么方法可以使用模拟或其他方式来实现它吗?
【问题讨论】:
-
你不能。这些变量是局部变量是有原因的。
-
当您从该方法返回局部变量或全局变量时,您可以获得局部变量
-
你不能,变量 1 是一个局部变量,因此一旦方法 1 完成就会被销毁,并且只在方法 1 中具有作用域。
-
那个目标毫无意义。您可能不知道,在您的 .java 文件编译后,局部变量不再存在。它们已被处理堆栈的二进制指令取代。
-
@Jaja Java 没有全局变量。无论您返回什么都不是局部变量,而是一个值。现在,假设他在谈论他无法更改的代码,他不能只添加返回类型和语句。
标签: java methods reflection local-variables