Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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 - Fatal编程技术网

Java内置库中的两个链接是如何链接在一起的?

Java内置库中的两个链接是如何链接在一起的?,java,Java,例如,在扫描仪中,我们有 obj.next() 但是我们可以在next()之后调用另一个方法 例如,我如何制作类似的东西 obj.getName().toLowerCase() 您所观察到的是,当方法调用的返回类型本身是某个其他对象时,您可以立即对该新返回的对象调用一个新方法 下面是另一个示例:String s=String.class.getName().toLowerCase()。这个例子可以改写如下: Class<String> stringClass = String.cl

例如,在扫描仪中,我们有 obj.next()

但是我们可以在next()之后调用另一个方法

例如,我如何制作类似的东西

obj.getName().toLowerCase()

您所观察到的是,当方法调用的返回类型本身是某个其他对象时,您可以立即对该新返回的对象调用一个新方法

下面是另一个示例:
String s=String.class.getName().toLowerCase()。这个例子可以改写如下:

Class<String> stringClass = String.class;
String name = stringClass.getName();
String s = name.toLowerCase();

最后,要解决您的主要问题:您可以通过创建返回对象而不是原语(int、long、byte等)的方法来创建相同的行为。

这里没有任何特殊情况
next
返回一个字符串,然后对该字符串调用
charAt
。如果
getName
返回一个字符串,那么您的代码应该已经可以工作了。有什么问题吗?没有问题,我只是想知道如何以同样的方式链接我自己的方法。再说一遍,没有什么特别的事情发生。代码的第一位与
String str=obj.next()相同;性状str.charAt(0)
,只是没有中间变量
str
。您只需要让方法返回对象,而不是
void
。就是这样。我只是个初学者,那种代码有名字吗?像抽象或封装一样?@BamoB0“方法链接”是一个通用术语。但请注意,长链中的链接方法通常是设计不佳的标志。除非您使用类似于构建器模式的东西,否则长链的方法可能会违反规则。
Class<String> stringClass = String.class;
String name = stringClass.getName();
String s = name.toLowerCase();
long millis = System.currentTimeMillis();