Java 为什么可以';在构建uri时是否保存uri对象?

Java 为什么可以';在构建uri时是否保存uri对象?,java,android,uri,Java,Android,Uri,第一个代码段不会附加'locationQuery'参数,但第二个会,为什么会有区别 第一段: Uri builtUri = Uri.parse(FORECAST_BASE_URL); builtUri.buildUpon() .appendQueryParameter(QUERY_PARAM, locationQuery) .build(); 第二段(来自udacity课程): 因为您没有分配使用下面表达式创建的Uri builtUri.buildUpon()

第一个代码段不会附加'locationQuery'参数,但第二个会,为什么会有区别

第一段:

Uri builtUri = Uri.parse(FORECAST_BASE_URL);
builtUri.buildUpon()
        .appendQueryParameter(QUERY_PARAM, locationQuery)
        .build();
第二段(来自udacity课程):


因为您没有分配使用下面表达式创建的Uri

builtUri.buildUpon()
        .appendQueryParameter(QUERY_PARAM, locationQuery)
        .build();
换成

builtUri = builtUri.buildUpon()
        .appendQueryParameter(QUERY_PARAM, locationQuery)
        .build();

Builder
不会修改现有的
Uri
Builder#build()
方法返回新的
Uri
builtUri = builtUri.buildUpon()
        .appendQueryParameter(QUERY_PARAM, locationQuery)
        .build();