使用该方法时,有没有办法推荐参数? (就像注释一样?)
我为url连接创建了很多静态final String参数,我想知道在编码时是否使用了正确的输入参数。
以下是我的例子。
public void myRequest(String inputParameter) {
String requestURL = "";
static final String ex1 = "http://example.com/xml1";
static final String ex2 = "http://example.com/xml2";
static final String ex3 = "http://example.com/xml3";
static final String ex4 = "http://example.com/xml4";
static final String ex5 = "http://example.com/xml5";
static final String ex6 = "http://example.com/xml6";
static final String ex7 = "http://example.com/xml7";
// too many..
// ....
static final String ex125 = "http://example.com/xm125";
if(inputParameter.equals("ex1")) {
requestURL = ex1;
} else if(inputParameter.equals("ex2")) {
requestURL = ex2;
}
// just like this..
// .....
else if(inputParameter.equals("ex125")) {
requestURL = ex125;
}
String requestURL = inputParameter;
URL url = new URL(requestURL);
URLConnection urlConnection = url.openConnection();
// below codes are unnecessary.
}
我将在“main”方法中使用该方法
public static void main(String[] args) {
myRequest("ex1"); // this!!
}
关键是,当我编写方法“myRequest()”时,IDE会告诉我有关参数的信息(当光标位于'('和')'之间时)。我可以注意到的唯一一个是“你应该写String对象”。不是“您可以使用ex1表示加载ex1.xml,ex2表示ex2.xml或... ex125表示xm125.xml”
如果我的希望成真,结果就像这样。
(编写方法)
myRequest(|); // there is cursor between ( and )
“我应该要求什么xml?嗯.. ex125有ex1。好的.. ex1意味着......我的家乡历史.. ex2意味着我的学校历史..而且嗯..我应该用ex4确定!” (我写下面的方法)
myRequest("ex4");
我希望IDE通知我应该使用什么字符串参数。
有可能吗?
答案 0 :(得分:1)
换句话说:你只是,永远不要像你那样放下常量列表;然后"映射" (通过代码中的硬连线;与您的示例中一样)到其他一些传入的字符串。
相反:您可以使用枚举来保存这些常量;您还可以向该枚举类添加一些方法,该方法知道如何将传入的字符串映射到可用的枚举常量。
但重点是:你想放弃" raw"字符串。 IDE(分别是编译器)无法帮助您添加" ext1" string作为方法参数。
但是当你有:
public enum ExUrls {
EX1("http://example.com/xml1"), EX2("...
... a private constructor that takes that url string)
然后你做:
void someMethod(ExURls ex) {
突然之间,IDE将能够向您推荐所有潜在的ExUrl常量!
答案 1 :(得分:0)
我不确定我的问题是否正确,但您可以使用javadoc。
这是oracle的一个例子。
/**
* This method is very amazing it will cure cancer
* (ex1 - hometown history),
* (ex2 - school history),
* (ex3 - blah blah),
* (ex4 - what is the meaning of life),
* ...
* (ex125 - choose this)
*
* @param inputParameter - (String) You can input ex1 up to ex125
*/
public void myRequest(String inputParameter) {
您需要做的就是键入/ **并按功能顶部的Enter键,然后您可以添加详细信息。当您将鼠标悬停在其函数调用上时,它们会显示出来。
在你的情况下可能是这样的
let oauth_consumer_key = "******"
let oauth_consumer_secret = "*****"
let oauth_token = "*****"
let oauth_token_secret = "*****"
let url = URL(string: "http.myurl.com")
let request = NSMutableURLRequest(url: url! as URL)
let a = OAuthSwiftClient(consumerKey: oauth_consumer_key, consumerSecret: oauth_consumer_secret, oauthToken: oauth_token, oauthTokenSecret: oauth_token_secret, version: .oauth1)
let credential = a.credential
let parameters = [String: AnyObject]()
let authorization = credential.authorizationHeader(method: .GET, url: url! as URL, parameters: parameters)
但如果你想要将输入限制在ex1-ex125,你只需要其他东西。