【发布时间】:2017-11-17 13:13:18
【问题描述】:
我想做这样的事情
static <T> T mine()
{
return new Object(){void hello(){}};
}
这样我就可以做到了
mine().hello();
打算做这样的事情
mine.hello().hi().bye();
所以要么我用 1 个方法 hello,hi,bye 声明每个类,然后返回实例,或者以某种方式我可以从上面的每个方法中返回一个匿名类(使用新定义的方法)。这样我就不必写很多课程了。
喜欢我可以的
static <T> T tunnel(T t)
{
return t;
}
tunnel(new Object()
{
void hello()
{
System.out.println("hello");
}
}).hello();
但它没有用,我想从隧道返回匿名对象(在隧道本身中创建),而不是返回传递的参数
【问题讨论】:
-
我认为您正在寻找的是构建器模式:en.wikipedia.org/wiki/Builder_pattern#Java
-
不,我喜欢看一些 BDD 类型的代码,比如 Mockito.doReturn(...).when(...) 但问题是我只想有一种方法,即你好() 在 mine() 的返回时被调用,只有 hi() 在 hello() 的返回时被调用,所以这意味着我必须声明多个类并返回它们的实例。如果可能的话,这就是我想避免使用匿名类的原因
-
那么匿名类是不可能的,因为它们就是匿名类。
标签: java bdd dsl anonymous-inner-class