2017-04-21 14 views
1

メソッドを使用するときにパラメータを推薦する方法はありますか? (注釈と同じですが)javaでパラメータを推奨するには?

url接続用のstatic 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. 
} 

と私は「メイン」メソッド

public static void main(String[] args) { 
    myRequest("ex1"); // this!! 
} 

にそのメソッドを使用します。ポイントは、私はメソッドを書く「myRequest()」で、IDEは(私のパラメータについての情報を教えてくれますカーソルが '('と ')'の間にあるとき)。私が気づくことができる唯一のものは、 "あなたはStringオブジェクトを書くべきです"です。 ex2を意味するex1を使用することができます。ex2はex2.xmlを意味します。ex125はxm125.xmlを意味します。

私の希望が真実なら、そのように見えます。

(メソッドの書き方)

myRequest(|); // there is cursor between (and) 

「何XMLは、私が要求する必要がありますか?うーん... ex125するEX1がある。[OK]を... EX1はEX2は、私の学校の歴史を意味.. ..私の故郷の歴史を意味しています。私はex4 okを使うべきです! " (そして、私は法の下に書く)

myRequest("ex4"); 

私はIDEは、文字列パラメータは、私が使うべきものを私に知らせたいです。

可能な方法はありますか?

+0

@ SkaryWombatしかし、どうですか?私はIDEは静的な最終的な文字列変数が入力パラメータとの関係を持っているかどうかわからないと思う.... – TyeolRik

+0

@GhostCat申し訳ありません私は仕事のために遅くなります。私の追加した例を確認してください。 – TyeolRik

+0

@GhostCat 私はここで初心者であるので、まったく分かりません。私はあなたの答えの横にあるチェックボックスをクリックしていますLOL – TyeolRik

答えて

1

この質問に対する最新情報があれば、答えはenumsおよびmapsです。

他の言葉で言えば、決して、決してあなたのような定数のリストを置くことはありません。それらは "マップ"されます(あなたのコードでハード配線によって、あなたの例のように)他の入力文字列に変換されます。

代わりに、これらの定数を保持するためにenumを使用できます。入ってくる文字列を利用可能な列挙型定数にマップする方法を知っているその列挙型クラスにメソッドを追加することもできます。

ただし、「生の」文字列を放棄したいとします。 IDE(それぞれコンパイラ)はメソッドパラメータとして "ext1"文字列を追加することはできません。

しかし、あなたが持っている:

public enum ExUrls { 
EX1("http://example.com/xml1"), EX2("... 
... a private constructor that takes that url string) 

は、あなたが行う:

void someMethod(ExURls ex) { 

と突然のすべてを、IDEはあなたにすべての潜在的なExUrl定数を提案することができるようになります!

0

あなたの質問が正しいかどうかはわかりませんが、javadocsを使用できます。

ここはoracleの例です。

/** 
* Returns an Image object that can then be painted on the screen. 
* The url argument must specify an absolute {@link URL}. The name 
* argument is a specifier that is relative to the url argument. 
* <p> 
* This method always returns immediately, whether or not the 
* image exists. When this applet attempts to draw the image on 
* the screen, the data will be loaded. The graphics primitives 
* that draw the image will incrementally paint on the screen. 
* 
* @param url an absolute URL giving the base location of the image 
* @param name the location of the image, relative to the url argument 
* @return  the image at the specified URL 
* @see   Image 
*/ 
public Image getImage(URL url, String name) { 
     try { 
      return getImage(new URL(url, name)); 
     } catch (MalformedURLException e) { 
      return null; 
     } 
} 

入力する必要があるのは、/ **と入力して、機能の上部にある[Enter]キーを押して詳細を追加するだけです。これらは、関数呼び出しにカーソルを移動すると表示されます。多分これ

 /** 
    * 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) { 

のようなあなたの場合には

いますが、EX1-ex125への入力を制限するために探している場合にのみ、あなたは何か他のものを必要としています。

+0

私を助けてくれてありがとうございますが、ポストで私の新しく追加された例を確認できますか?私はしたいことについて何らかの誤解があると思う。 – TyeolRik

+0

コーディングのガイドだけの場合、通常はJavadocsが使用されます。 このコメントをパブリックの上に配置してみてください。void myRequest(String inputParameter){ – cebuseiran

関連する問題