Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用函数调用生成字符串并使用它_Java_String - Fatal编程技术网

Java 使用函数调用生成字符串并使用它

Java 使用函数调用生成字符串并使用它,java,string,Java,String,有可能这样做吗 Dog dog = new dog(); String command = ".bark().wag().jump()"; //assume these all exist in the Dog object dog+命令//我想用dog.bark().wag().jump()代替这个在运行时。如何执行此操作?您可以创建并使用带有反射的自定义注释来标记具有名称的方法: @Command(name="bark") public void

有可能这样做吗

Dog dog = new dog();

String command = ".bark().wag().jump()"; //assume these all exist in the Dog object

dog+命令//我想用dog.bark().wag().jump()代替这个在运行时。如何执行此操作?

您可以创建并使用带有反射的自定义注释来标记具有名称的方法:

@Command(name="bark")
public void bark() {
    System.out.println("Le BARK, le WOOF! Je suis un chien!");
}
您可以只查询方法名,但我更喜欢做注释,这样我就可以随时将方法名更改为我想要的任何名称,并保持相同的命令名

虽然最好在类中创建一个方法,如:

public void executeCommand(String command) {
    if (command.contains("bark") {
       bark();
    }
}

如果您正在寻找一种方法来避免您的手指因键入冗长的java代码而变得笨拙,恐怕我所知道的没有真正的捷径。通常我会发现,当我尝试过类似的事情时,我最终键入的内容要比直接键入的内容多得多。

看起来我需要的是CriteriaBuilder。感谢

欢迎使用堆栈溢出!有很多方法可以通过反射来实现这一点,但我一般不建议这样做。您到底想实现什么?我正在为LDAP创建一个查询,与SQL不同,我必须使用函数调用,而不是编写简单的语句。因此,我需要能够向以下内容添加更多的.and()命令:List persons=ldapTemplate.search(query().where(“objectclass”).is(“person”),.and(query().where(“cn”).is(“Doe”)或(“cn”).is(“Doo”);你应该把评论的内容放在问题中。我试图让我的问题保持简单。听起来JPA的
CriteriaBuilder
可以完成这项工作。当你可以问一个明确的问题时,千万不要问一个简单的问题;-)在
上使用split命令()。