The*_*One 2 java macros function
我是Java的初学者,我想写一些像这样的代码:
TEST(myfunction(1, 2, 3));
Run Code Online (Sandbox Code Playgroud)
TEST在哪里:
在我的代码中,我希望TEST做一些代码:
TEST(function) {
if (function())
// code
else
//code
}
Run Code Online (Sandbox Code Playgroud)
我知道指针在Java中不可用.一个想法来帮助我?
[编辑]这是另一个例子:
TEST(myfunction(1, 2, 3));
Run Code Online (Sandbox Code Playgroud)
实施TEST的地方:
void TEST (function(args[])) {
try {
function();
}
catch (Exception e) {
// Exception happened !
}
Run Code Online (Sandbox Code Playgroud)
}
多亏了这一点,只有一个代码行,我将能够使用try catch!
Java没有指向函数的指针.函数在Java中传递的典型方式是传递实现的对象Runnable.
编辑:我已经修改了我的例子,以便更接近你的第二个案例.
在您的情况下,您需要布尔返回值,您可以定义自己的接口:
public interface BooleanTest {
boolean test(Object... args) throws Exception;
}
Run Code Online (Sandbox Code Playgroud)
然后:
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));
Run Code Online (Sandbox Code Playgroud)
在TEST内:
TEST(BooleanTest test) {
try {
if (test.test("Jack", "and", "Jill")) {
// ...
}
} catch (Exception e) {
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1796 次 |
| 最近记录: |