gpt4 book ai didi

Java,宏代码,函数地址

转载 作者:行者123 更新时间:2023-11-30 06:36:10 26 4
gpt4 key购买 nike

我是 Java 初学者,我想写一些这样的代码:

TEST(myfunction(1, 2, 3));

TEST 在哪里:

  • C 中使用的宏
  • 需要函数myfunction的地址的函数之一>

在我的代码中,我希望TEST 做一些代码:

TEST(function) {
if (function())
// code
else
//code
}

我知道指针在 Java 中不可用。有帮助我的想法吗?

[编辑]这是另一个例子:

TEST(myfunction(1, 2, 3));

TEST 实现的地方:

void TEST (function(args[])) {
try {
function();
}
catch (Exception e) {
// Exception happened !
}

多亏了这一点,只有一行代码,我将能够使用 try catch !

最佳答案

Java 没有指向函数的指针。在 Java 中传递函数的典型方式是传递实现 Runnable 的对象。

编辑:我修改了示例以更接近您的第二种情况。

在你的例子中,如果你想要一个 boolean 返回值,你可以定义你自己的接口(interface):

public interface BooleanTest {
boolean test(Object... args) throws Exception;
}

然后是:

class MyTest implements BooleanTest {
private boolean result;
public MyTest(int a, int b, int c) {
result = a + b == c;
}
// stupid test -- don't _have_ to declare "throws Exception"
public boolean test(Object... args) {
return result && args.length == 3;
}
}

TEST(new MyTest(1, 2, 3));

和内部测试:

TEST(BooleanTest test) {
try {
if (test.test("Jack", "and", "Jill")) {
// ...
}
} catch (Exception e) {
}
}

关于Java,宏代码,函数地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5157180/

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