在一些expermients中,我想写这样的东西:
query(Person.class, eq(Person::lastName, "Hawking"));
其中eq
方法创建数据库查询部分lastName = 'Hawking'
和query
,结果返回String
"SELECT * FROM person WHERE lastName = 'Hawking'"
。通过这种方式,我可以用简短的形式编写类型安全的查询,而无需生成代码。
问题是eq
作为第一个参数需要Supplier<E>
。
是否可以从传递的方法参考中找出通过反射API方法名称?
甚至允许使用hackish方式! :)