gpt4 book ai didi

java - 有点像java/android中的动态函数

转载 作者:行者123 更新时间:2023-12-01 19:10:30 26 4
gpt4 key购买 nike

我从 PHP 转到 Java,我对“动态”函数有一些疑问。

有点像在 php 中,您可以执行 include(VARNAME.".php"); 并且如果 varname 是 a 它将包含 a。 php 如果它的 x 它将包含 x.php

我想在 Java 中使用函数来做到这一点。
有点像我有一个变量名并且我想包含一个函数。因此,如果 varname 是 Test ,它将包含 test() 但我有一堆函数,而且做起来很麻烦

if(varname == "x"){ x(); }. 

有什么简单的方法吗?

最佳答案

首先,if(varname == "x") 肯定不是您想要的。这是一个常见的 Java 错误,将检查对象标识,而不是对象值。您需要 if(varname.equals("x"))

其次,这不是很惯用的 Java。正如 Jason 指出的,您可以使用反射来进行动态方法查找。然而,几乎可以肯定,对于您想要实现的目标,有更好的设计。

Java 是一种与 PHP 非常不同的语言。尝试将 PHP 习惯用法应用到 Java 只会给您带来痛苦和磨难。

话虽如此,我认为这大致就是您正在寻找的代码:

Method method = this.class.getDeclaredMethod("x", new Class[] {});
method.invoke(this, new Object[] {});

关于java - 有点像java/android中的动态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8582048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com