하나의 소개 :
제네릭이없는 Javase 1.5 이전에는 유형 객체를 참조하여 매개 변수의 "임의의"이 달성되었습니다. "임의의"의 단점은 명시적인 캐스트 유형 변환이 필요하다는 것이 었고이 변환은 개발자가 실제 매개 변수 유형을 예측해야했습니다. 캐스트 유형 변환 오류의 경우 컴파일러가 오류가 발생하지 않을 수 있으며 실행 중에만 예외가 발생합니다. 이는 보안 위험입니다.
제네릭의 장점은 컴파일 할 때 유형 안전을 확인하고 모든 캐스트가 자동적이고 암시되어 코드의 재사용 속도를 향상 시킨다는 것입니다.
2. 일반 매개 변수 :
클래스 gen <t> {private t ob; // 일반 멤버 변수 public gen (t ob) {this.ob = ob;} public t getob () {return ob;} public void setob (t ob) {this.ob = ob;} public void showtype () {system.out.println ( "public tyt of t);"); class genericparameter {public static void main (string [] args) {// 일반 클래스 gen gen gen gen <integer> intob = new Gen <Integer> (100); intob.showtype (); int i = intob.getob (); system.out.println ( "value =" + i);System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 산출:
실제 t 유형은 java.lang.integer입니다
값 = 100
--------------------------------------------------------------------------------------------------------------------------------
실제 t 유형은 java.lang.string입니다
value = 안녕하세요 딜런!
3. 제네릭 :
Class genericsfoo <t> {private t x; public genocsfoo (t x) {this.x = x;} public t getx () {return x;} public void setx (t x) {this.x = x;}} public static void main (string args []) {genericsfoo <strfoo = 새로운 genericfo <strfo <strfo generics! "); genericsfoo <double> doufoo = new genericsfoo <double> (new double ("33 ")); genericsfoo <botort> objfoo = new GenericsFoo <Object> (new Object ()); system.out.println ( "strfoo.getx ="+strfoo.getx ()); system.out.println ( "doufoo.getx ="+doufoo.getx ()); system.out.println ( "objfoo.getx ="+objfoo.getx ()); 산출:
strfoo.getx = 안녕하세요 제네릭!
doufoo.getx = 33.0
objfoo.getx=java.lang.object@1d0fafc
네 제한 제네릭 :
import java.util.arraylist; import java.util.collection; class CollectionGenfoo <t extends collection> {private t x; public collectiongenfoo (t x) {this.x = x;} public t getx () {return x;} public void setx (t x) {this.x = x;}} 공개적으로 genericrrestrict {public classe {this.x = x;}} args) {CollectionGenfoo <arraylist> listfoo = null; listfoo = new CollectionGenfoo <ArrayList> (new ArrayList ()); CollectionGenfoo <? Collection 확장> listfoo1 = null; listfoo1 = new CollectionGenfoo <ArrayList> (new ArrayList ()); System.out.println ( "Instantiation Success!");}} 산출:
인스턴스화가 성공적이었습니다!
5 가지 일반 방법 :
public class genericfunction {public <t> void f (t x) {system.out.println (x.getClass (). getName ());} public static void main (string [] args) {genericFunction ea = new GenericFunction (); ea.f ( ""); ea.f (ea.); 산출:
java.lang.string
java.lang.integer
java.lang.character
일반적인 기능
--------------------------------------------------------------------------------------------------------------------------------
딜런 선물.
요약
위의 내용은 Java의 일반적인 예에 대한 자세한 설명에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!