2017-04-18 2 views
1

私はインターフェイスの列挙を使用するjspを作成しました。 jspは正常に動作しますが、プログラムをオーバーライドせずにオーバーライドするクラスを使用しないと、プログラムでhasMoreElements()nextElement()の両方のメソッドを使用する方法がわかりません。インターフェースメソッドはボディを持たないはずです、そうですか?ライン上のInterface Enumerationメソッドをオーバーライドせずに使用できるのはなぜですか?

<%@page import="java.util.*"%> 
<% 
    char respuesta; 
    int g=0; //Gryffindor 
    int r=0; //Ravenclaw 
    int h=0; //Hufflepuff 
    int s=0; //Slytherin 
    String valorParametro; 

    Enumeration e=request.getParameterNames(); 
    try { 
     while (e.hasMoreElements()) { 
      valorParametro=request.getParameter(e.nextElement().toString()); 
      respuesta=valorParametro.charAt(0); 
      switch(respuesta) { 
       case 'A': 
       out.write("Un punto para Gryffindor...<br>"); 
       g++; break; 
       case 'B': 
       out.write("Un punto para Ravenclaw...<br>"); 
       r++; break; 
       case 'C': 
       out.write("Un punto para Hufflepuff...<br>"); 
       h++; break; 
       case 'D': 
       out.write("Un punto para Slytherin...<br>"); 
       s++; break; 
      } 
     } 
    } catch (Exception ex) {out.write(e.toString());} 

    out.write("Y tu casa es..."); 
    if (g>r && g>s && g>h) {out.write(" ¡GRYFFINDOR!");} 
    else if (r>g&&r>s&&r>h) {out.write(" ¡RAVENCLAW!");} 
    else if (h>g&&h>s&&h>r) {out.write(" ¡HUFFLEPUFF!");} 
    else if (s>g&&s>r&&s>h) {out.write(" ¡SLYTHERIN!");} 
    else {out.write(" Chico, el sombrero no sabe qué decir.");} 
%> 

答えて

4

requestオブジェクトの

Enumeration e=request.getParameterNames(); 

getParameterNamesEnumerationインタフェースの実装を返します。返されるオブジェクトはEnumerationを実装するので、コード内でこのインタフェースのメソッドを呼び出すことができます。

どの具体的なクラスインスタンスがgetParameterNames()を返すかを知る必要はありません。

返された結果がEnumerationインターフェイスを実装しており、得られた結果とEnumerationインターフェイスメソッドを使用できます。

また、あなたの質問に直接関係するものではないため、具体的なクラスの実装に固執しないようにインターフェイスタイプを使用することをお勧めします。それはあなたのコードをより柔軟かつ保守性になり

List<String> myList = new ArrayList<>(); 

:宣言のこの種の

ArrayList<String> myList = new ArrayList<>(); 

例えば、宣言のこの種を交換することをお勧めします。タイプ(List)を変更することなく、myListLinkedListStackなど)の具体的な実装を変更することができます。

関連する問題