>  기사  >  Java  >  고급 Java 튜토리얼: 일반 메소드

고급 Java 튜토리얼: 일반 메소드

黄舟
黄舟원래의
2016-12-27 11:35:061510검색

호출 시 다양한 유형의 매개변수를 받을 수 있는 일반 메서드를 작성할 수 있습니다. 일반 메서드에 전달된 매개 변수 유형에 따라 컴파일러는 각 메서드 호출을 적절하게 처리합니다.

다음은 일반 메서드 정의 규칙입니다.

모든 일반 메서드 선언에는 메서드 반환 형식(아래 예) 앞에 형식 매개 변수 선언 부분(꺾쇠 괄호로 구분)이 있습니다. .

각 유형 매개변수 선언 부분에는 쉼표로 구분된 하나 이상의 유형 매개변수가 포함됩니다. 유형 변수라고도 하는 일반 매개변수는 일반 유형의 이름을 지정하는 식별자입니다.

유형 매개변수는 반환 값 유형을 선언하는 데 사용될 수 있으며 일반 메서드에서 얻은 실제 매개변수 유형에 대한 자리 표시자 역할을 할 수 있습니다.

제네릭 메소드의 메소드 본문 선언은 다른 메소드와 동일합니다. 유형 매개변수는 기본 유형(예: int, double, char 등)이 아닌 참조 유형만 나타낼 수 있습니다.

다음 예에서는 일반 메서드를 사용하여 다양한 문자열의 요소를 인쇄하는 방법을 보여줍니다.

public class GenericMethodTest
{
   // 泛型方法 printArray                         
   public static < E > void printArray( E[] inputArray )
   {
      // 输出数组元素            
         for ( E element : inputArray ){        
            System.out.printf( "%s ", element );
         }
         System.out.println();
    }
 
    public static void main( String args[] )
    {
        // 创建不同类型数组: Integer, Double 和 Character
        Integer[] intArray = { 1, 2, 3, 4, 5 };
        Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
        Character[] charArray = { &#39;H&#39;, &#39;E&#39;, &#39;L&#39;, &#39;L&#39;, &#39;O&#39; };
 
        System.out.println( "Array integerArray contains:" );
        printArray( intArray  ); // 传递一个整型数组
 
        System.out.println( "\nArray doubleArray contains:" );
        printArray( doubleArray ); // 传递一个双精度型数组
 
        System.out.println( "\nArray characterArray contains:" );
        printArray( charArray ); // 传递一个字符型型数组
    } 
}
编译以上代码,运行结果如下所示:
 
Array integerArray contains:
1 2 3 4 5 6
  
Array doubleArray contains:
1.1 2.2 3.3 4.4
  
Array characterArray contains:
H E L L O

제한된 유형 매개변수:

유형 매개변수에 전달될 수 있는 유형의 범위를 제한하려는 경우가 있습니다. 예를 들어, 숫자에 대해 작동하는 메서드는 Number의 인스턴스나 Number의 하위 클래스만 허용하기를 원할 수 있습니다. 이것이 제한된 유형 매개변수의 목적입니다.

제한된 유형 매개변수를 선언하려면 먼저 유형 매개변수의 이름을 나열한 다음, 확장 키워드, 마지막으로 상한값을 나열하세요.

예제

다음 예제에서는 일반적인 의미에서 "확장"(클래스) 또는 "구현"(인터페이스)을 의미하기 위해 "확장"이 어떻게 사용되는지 보여줍니다. 이 예제의 일반 메서드는 비교 가능한 세 개체의 최대값을 반환합니다.

public class MaximumTest
{
   // 比较三个值并返回最大值
   public static > T maximum(T x, T y, T z)
   {                     
      T max = x; // 假设x是初始最大值
      if ( y.compareTo( max ) > 0 ){
         max = y; //y 更大
      }
      if ( z.compareTo( max ) > 0 ){
         max = z; // 现在 z 更大           
      }
      return max; // 返回最大对象
   }
   public static void main( String args[] )
   {
      System.out.printf( "Max of %d, %d and %d is %d\n\n",
                   3, 4, 5, maximum( 3, 4, 5 ) );
  
      System.out.printf( "Maxm of %.1f,%.1f and %.1f is %.1f\n\n",
                   6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ) );
  
      System.out.printf( "Max of %s, %s and %s is %s\n","pear",
         "apple", "orange", maximum( "pear", "apple", "orange" ) );
   }
}
编译以上代码,运行结果如下所示:
 
Maximum of 3, 4 and 5 is 5
  
Maximum of 6.6, 8.8 and 7.7 is 8.8
  
Maximum of pear, apple and orange is pear

위 내용은 Java Advanced Tutorial: Generic Methods 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.