⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 type_8h-source.html

📁 java 反射机制详解示例,实现类属性及方法修改
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>type.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.15 --><center><a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center><hr><h1>type.h</h1><div class="fragment"><pre>00001 <font class="preprocessor">#ifndef __TYPE_H__</font>00002 <font class="preprocessor"></font><font class="preprocessor">#define __TYPE_H__</font>00003 <font class="preprocessor"></font>00004 <font class="preprocessor">#include &lt;string.h&gt;</font>00005 00006 <font class="keyword">class </font><a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>;00007 <font class="keyword">class </font><a class="code" href="classRTTIFieldDescriptor.html">RTTIFieldDescriptor</a>;00008 <a name="l00012"></a><a class="code" href="classRTTIType.html">00012</a> <font class="keyword">class </font>RTTI_DLL_ENTRY <a class="code" href="classRTTIType.html">RTTIType</a> { 00013   <font class="keyword">public</font>:<a name="l00018"></a><a class="code" href="classRTTIType.html#RTTITypea0">00018</a>     <font class="keywordtype">int</font>  getTag() { 00019         <font class="keywordflow">return</font> tag;00020     }00021 00026     <font class="keyword">virtual</font> <font class="keywordtype">void</font> getTypeName(<font class="keywordtype">char</font>* buf);00027 00028     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> voidType;00029     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> charType;00030     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> ucharType;00031     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> scharType;00032     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> shortType;00033     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> ushortType;00034     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> intType;00035     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> uintType;00036     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> longType;00037     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> ulongType;00038     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> floatType;00039     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> doubleType;00040     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> boolType;00041     <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> unknownType;00042 00043     <font class="keyword">enum</font> TypeTag { 00044         RTTI_UNKNOWN, 00045         RTTI_VOID, 00046         RTTI_CHAR, 00047         RTTI_UCHAR, 00048         RTTI_SCHAR, 00049         RTTI_SHORT, 00050         RTTI_USHORT, 00051         RTTI_INT, 00052         RTTI_UINT, 00053         RTTI_LONG, 00054         RTTI_ULONG, 00055         RTTI_FLOAT, 00056         RTTI_DOUBLE, 00057         RTTI_BOOL, 00058         RTTI_ARRAY, 00059         RTTI_STRUCT, 00060         RTTI_PTR,  00061         RTTI_DERIVED,00062         RTTI_METHOD 00063     };00064     <a name="l00068"></a><a class="code" href="classRTTIType.html#RTTITypea2">00068</a>     <font class="keywordtype">bool</font> isBuiltin() { 00069         <font class="keywordflow">return</font> tag &lt;= RTTI_BOOL;00070     }00071     <a name="l00075"></a><a class="code" href="classRTTIType.html#RTTITypea3">00075</a>     <font class="keywordtype">bool</font> isScalar() { 00076         <font class="keywordflow">return</font> tag &gt; RTTI_VOID &amp;&amp; tag &lt;= RTTI_BOOL;00077     } 00078         <a name="l00082"></a><a class="code" href="classRTTIType.html#RTTITypea4">00082</a>     <font class="keywordtype">bool</font> isArray() { 00083         <font class="keywordflow">return</font> tag == RTTI_ARRAY;00084     }00085 <a name="l00089"></a><a class="code" href="classRTTIType.html#RTTITypea5">00089</a>     <font class="keywordtype">bool</font> isPointer() { 00090         <font class="keywordflow">return</font> tag == RTTI_PTR;00091     }00092 <a name="l00096"></a><a class="code" href="classRTTIType.html#RTTITypea6">00096</a>     <font class="keywordtype">bool</font> isClass() { 00097         <font class="keywordflow">return</font> tag == RTTI_STRUCT;00098     }00099 <a name="l00103"></a><a class="code" href="classRTTIType.html#RTTITypea7">00103</a>     <font class="keywordtype">bool</font> isBaseClass() { 00104         <font class="keywordflow">return</font> tag == RTTI_DERIVED;00105     }00106     00110     ~<a class="code" href="classRTTIType.html">RTTIType</a>();00111 00112   <font class="keyword">protected</font>:00113     <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>;00114     <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classRTTIFieldDescriptor.html">RTTIFieldDescriptor</a>;00115     <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classRTTIMethodDescriptor.html">RTTIMethodDescriptor</a>;00116 00117     <font class="keywordtype">int</font>   tag;00118 00119     <font class="keywordtype">void</font> destroy() {00120         <font class="keywordflow">if</font> (!isBuiltin()) { 00121             <font class="keyword">delete</font> <font class="keyword">this</font>;00122         }00123     }00124 00125     <a class="code" href="classRTTIType.html">RTTIType</a>(<font class="keywordtype">int</font> tag) { 00126         this-&gt;tag = tag;00127     }00128 };00129  00130 <a name="l00134"></a><a class="code" href="classRTTIPtrType.html">00134</a> <font class="keyword">class </font>RTTI_DLL_ENTRY RTTIPtrType : <font class="keyword">public</font> <a class="code" href="classRTTIType.html">RTTIType</a> {     00135   <font class="keyword">public</font>:00136     RTTIPtrType(<a class="code" href="classRTTIType.html">RTTIType</a>* ptrType) : <a class="code" href="classRTTIType.html">RTTIType</a>(RTTI_PTR) {00137         this-&gt;ptrType = ptrType;00138     }00139     <font class="keywordtype">void</font> <a class="code" href="classRTTIType.html#RTTITypea1">getTypeName</a>(<font class="keywordtype">char</font>* buf);00140   <font class="keyword">protected</font>:00141     <a class="code" href="classRTTIType.html">RTTIType</a>* ptrType;00142 };00143 <a name="l00147"></a><a class="code" href="classRTTIArrayType.html">00147</a> <font class="keyword">class </font>RTTI_DLL_ENTRY RTTIArrayType : <font class="keyword">public</font> <a class="code" href="classRTTIType.html">RTTIType</a> {     00148   <font class="keyword">public</font>:00149     RTTIArrayType(<a class="code" href="classRTTIType.html">RTTIType</a>* elemType, <font class="keywordtype">int</font> nElems) : <a class="code" href="classRTTIType.html">RTTIType</a>(RTTI_ARRAY) {00150         this-&gt;elemType = elemType;00151         this-&gt;nElems = nElems;00152     }00153     <font class="keywordtype">void</font> <a class="code" href="classRTTIType.html#RTTITypea1">getTypeName</a>(<font class="keywordtype">char</font>* buf);00154 00155     <font class="keywordtype">int</font>  getArraySize() { 00156         <font class="keywordflow">return</font> nElems;00157     }00158 00159     <a class="code" href="classRTTIType.html">RTTIType</a>* getElementType() { 00160         <font class="keywordflow">return</font> elemType;00161     }00162 00163   <font class="keyword">protected</font>:00164     <a class="code" href="classRTTIType.html">RTTIType</a>* elemType;00165     <font class="keywordtype">int</font>       nElems;00166 };00167 <a name="l00171"></a><a class="code" href="classRTTIDerivedType.html">00171</a> <font class="keyword">class </font>RTTI_DLL_ENTRY RTTIDerivedType : <font class="keyword">public</font> <a class="code" href="classRTTIType.html">RTTIType</a> {     00172   <font class="keyword">public</font>:00173     RTTIDerivedType(<a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* baseClass) : <a class="code" href="classRTTIType.html">RTTIType</a>(RTTI_DERIVED) {00174         this-&gt;baseClass = baseClass;00175     }00176     00177     <a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* getBaseClass() { 00178         <font class="keywordflow">return</font> baseClass;00179     }00180 00181     <font class="keywordtype">void</font> <a class="code" href="classRTTIType.html#RTTITypea1">getTypeName</a>(<font class="keywordtype">char</font>* buf);00182 00183   <font class="keyword">protected</font>:00184     <a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* baseClass;00185 };00186 <a name="l00190"></a><a class="code" href="classRTTIMethodType.html">00190</a> <font class="keyword">class </font>RTTI_DLL_ENTRY RTTIMethodType : <font class="keyword">public</font> <a class="code" href="classRTTIType.html">RTTIType</a> { 00191   <font class="keyword">public</font>:00192     <font class="keywordtype">void</font> <a class="code" href="classRTTIType.html#RTTITypea1">getTypeName</a>(<font class="keywordtype">char</font>* buf);00193     00194     <font class="keywordtype">void</font> getMethodDeclaration(<font class="keywordtype">char</font>* buf, <font class="keywordtype">char</font> <font class="keyword">const</font>* name);00195 00196     <font class="keyword">virtual</font> <font class="keywordtype">void</font> invoke(<font class="keywordtype">void</font>* result, <font class="keywordtype">void</font>* obj, <font class="keywordtype">void</font>* parameters[]) = 0;00197 00198     <a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* getClass() { 00199         <font class="keywordflow">return</font> methodClass;00200     }00201 00202     <a class="code" href="classRTTIType.html">RTTIType</a>* getReturnType() { 00203         <font class="keywordflow">return</font> returnType;00204     }00205 00206     <a class="code" href="classRTTIType.html">RTTIType</a>** getParameterTypes() { 00207         <font class="keywordflow">return</font> paramTypes;00208     }00209 00210     <font class="keywordtype">int</font> getNumberOfParameters() { 00211         <font class="keywordflow">return</font> nParams;00212     }00213 00214     RTTIMethodType() : <a class="code" href="classRTTIType.html">RTTIType</a>(RTTI_METHOD) {}00215     ~RTTIMethodType() { 00216         <font class="keyword">delete</font>[] paramTypes;00217     }00218   <font class="keyword">protected</font>:00219     <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classRTTIMethodDescriptor.html">RTTIMethodDescriptor</a>;00220     <font class="keyword">friend</font> <font class="keyword">class </font>RTTIBfdRepository;00221 00222     <a class="code" href="classRTTIType.html">RTTIType</a>*  returnType;00223     <font class="keywordtype">int</font>        nParams;00224     <a class="code" href="classRTTIType.html">RTTIType</a>** paramTypes;00225     <a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* methodClass;00226     <font class="keywordtype">bool</font>       isStatic;00227 };00228         00229 00230 <font class="preprocessor">#endif</font>00231 <font class="preprocessor"></font></pre></div><hr><address align="right"><small>Generated on Fri Apr 26 17:39:24 2002 for CppReflection by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.15 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -