Bin*_*ong 2 java google-api guava
Google的Oauth2库方法需要一个针对scopes参数的Java列表.将参数编码为List
文字是否合理,如下所示:
public static final List<String> YOUTUBE_SCOPES = Lists.newArrayList(
"https://www.googleapis.com/auth/youtube.upload",
"https://www.googleapis.com/auth/youtube.readonly");
Run Code Online (Sandbox Code Playgroud)
这样我就可以:
SendToGoogleUtils.getGoogleAccountCredential(activity, accountName, YOUTUBE_SCOPES );
Run Code Online (Sandbox Code Playgroud)
Java编译器是否会创建有效的YOUTUBE_SCOPES文字?
ArrayList
s不是一成不变的,即使它们被宣布为final
; 这只意味着变量不能改变,但其内容可以.请参阅:为什么最终对象可以修改?
因为你正在使用Lists.newArrayList
,看起来你正在使用番石榴.番石榴有一个很好的解决方案:ImmutableList
.所以你的代码是:
public static final List<String> YOUTUBE_SCOPES = ImmutableList.of(
"https://www.googleapis.com/auth/youtube.upload",
"https://www.googleapis.com/auth/youtube.readonly");
Run Code Online (Sandbox Code Playgroud)
也就是说,这里还有另外一个问题,那就是"如果我想稍后改变这个怎么办?"
我不知道您是否有任何类型的配置文件加载,但请注意,如果您确实需要更改这些范围(例如,如果Google更改了URL),则必须更改链接.如果可以通过重新编译你的jar来改变它,那么不要担心它; 但是,您可能需要考虑将这些魔术常量放入某种配置文件中.
归档时间: |
|
查看次数: |
66 次 |
最近记录: |