1つのはじめに:
javase 1.5の前に、ジェネリックがなければ、型オブジェクトを参照することにより、パラメーターの「arbitraryization」が達成されました。 「arbitrary化」の欠点は、明示的なキャストタイプ変換が必要であることであり、この変換では実際のパラメータータイプを予測する必要がありました。キャストタイプの変換エラーの場合、コンパイラはエラーを促さない場合があり、例外は実行中にのみ発生します。これはセキュリティリスクです。
ジェネリックの利点は、コンパイル時にタイプの安全性をチェックし、すべてのキャストが自動で暗黙的であり、コードの再利用率を改善することです。
2。一般的なパラメーター:
クラスgen <t> {private t ob; // genericメンバー変数パブリックgen(t ob){this.ob = ob;} public t getob(){return ob;} public void setob(t ob){this.ob = ob;} public void showtype(){system.out.out.publintln( " class genericParameter {public static void main(string [] args){// generic class gen gen gen <integer> intob = new gen <integer>(100); intob.showtype(); int i = intob.getob(); system.out.out.println( "value =" + " +" + i);System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------出力:
Tの実際のタイプは次のとおりです。Java.lang.integer
値= 100
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -
Tの実際のタイプは次のとおりです。Java.lang.String
値=こんにちはディラン!
3。ジェネリック:
class genericsfoo <t> {private t x; public genericsfoo(t x){this.x = x;} public t getx(){return x;} public void setx(t x){this.x = x;}} public class genericclass {public void main(String args []){generic Generics! "); GenericsFoo <Double> doufoo = new GenericsFoo <Double>(new Double(" 33 ")); GenericsFoo <Object> objfoo = new GenericsFoo <Object>(new object()); system.out.println( "strfoo.getx ="+strfoo.getx()); system.out.println( "doufoo.getx ="+doufoo.getx()); out.println( "objfoo.getx ="+objfoo.getx();}}}}出力:
strfoo.getx = hello generics!
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 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 ruccund!");}}}}出力:
インスタンスは成功しました!
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( ''出力:
Java.lang.String
java.lang.integer
Java.lang.Character
GenericFunction
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -
ディランプレゼント。
要約します
上記は、Javaの一般的な例の詳細な説明に関するこの記事のすべての内容です。誰にとっても役立つことを願っています。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!