小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【イントロスペクションとは】

 Elena 2006-05-23
イントロスペクション
日本語 內(nèi)省
英語 introspection
ふりがな いんとろすぺくしょん
フリガナ イントロスペクション

説明

JavaBeansプロパティを取得すること、もしくは取得できること。
JavaBeansは、使用する側(cè)が動的に「どのようなプロパティを持っているのか」を取得し、得られた情報を元にプロパティgetter/setterを使用してアクセスする必要がある。
この「プロパティの情報を取得できる」ことを「イントロスペクション」と呼ぶ。もしくは「プロパティの情報を取得する」ことを「イントロスペクションする」と言う。
 
特定のJava Beanクラスをイントロスペクションする場合、Introspectorクラスを使用する。
IntrospectorクラスのgetBeanInfo()staticメソッドを使用することで、プロパティについての情報を持つBeanInfoインターフェイスを取得し、そこからgetter/setterメソッドを取得することができる。
 
通常、Introspectorクラスリフレクションを用いてプロパティの情報を取得し、BeanInfoインターフェイス実裝クラスに持たせる。
つまり、「イントロスペクション」を?qū)g現(xiàn)する手段のひとつが「リフレクション」ということになる。
 
一応、あるクラスJava Beanであるためには「イントロスペクションがえる」必要がある。
ただし、通常はリフレクションが代わりにイントロスペクション用の情報を提供してくれるため、意識して実裝する必要はないだろう。

使用例

// src/bean/SampleBean.java
package bean;
// Java Beanは、JSPで使用する関係でパッケージに入れる必要があります。
// ここではbeanパッケージに入れます。
// 一応、Java Beanは直列化可能にする必要があります。
// 実際には必要ない場合も多いですが。
import java.io.Serializable;
/**
*   Sampleクラスで使用するJava Beanクラスです。
*/
public class SampleBean implements Serializable
{
/**
*    プロパティ。
*/
private int data;
/**
*   コンストラクタ。
*/
public SampleBean()
{
data = 0;
}
/**
*    プロパティのgetter。
*/
public int getData()
{
return data;
}
/**
*    プロパティのsetter。
*/
public void setData( int value )
{
this.data = value;
}
}
// Sample.java
import java.beans.Introspector;
import java.beans.BeanInfo;
import java.beans.PropertyDescriptor;
import java.beans.IntrospectionException;
import bean.SampleBean;
public class Sample
{
public static void main( String[] args )
{
try
{
// SampleBeanクラスの情報を取得します。
BeanInfo beanInfo = Introspector.getBeanInfo( SampleBean.class );
// SampleBeanクラスのプロパティ全てを取得します。
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
// プロパティそれぞれの、getter/setterを出力します。
for( int iF1 = 0; iF1 < propertyDescriptors.length; ++iF1 )
{
System.out.println( propertyDescriptors[iF1].getReadMethod() );
System.out.println( propertyDescriptors[iF1].getWriteMethod() );
}
// public final native java.lang.Class java.lang.Object.getClass()
// null
// public int bean.SampleBean.getData()
// public void bean.SampleBean.setData(int)
}
catch( IntrospectionException e )
{
// IntrospectorクラスのgetBeanInfo()メソッドで例外が発生した場合
// (JavaBeansじゃない場合とか)にはIntrospectionException例外が
// 投げられます。
e.printStackTrace();
}
}
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多