锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久99亚洲网美利坚合众国,亚洲人成77777在线播放网站,亚洲国产精品无码专区http://m.tkk7.com/yifeng/category/34012.html鍏夋槸鐭ラ亾鏄笉澶熺殑錛屽繀欏昏鍔犱互搴旂敤錛涘厜鏄笇鏈涙槸涓嶅鐨勶紝闈炲幓鍋氫笉鍙?/description>zh-cnWed, 17 Dec 2008 21:18:38 GMTWed, 17 Dec 2008 21:18:38 GMT60Java keywordshttp://m.tkk7.com/yifeng/archive/2008/12/17/246751.html蹇嗛蹇嗛Tue, 16 Dec 2008 16:09:00 GMThttp://m.tkk7.com/yifeng/archive/2008/12/17/246751.htmlhttp://m.tkk7.com/yifeng/comments/246751.htmlhttp://m.tkk7.com/yifeng/archive/2008/12/17/246751.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/246751.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/246751.htmlIn the Java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this, programmers cannot use keywords as names for variables, methods, classes, or as any other identifier.[1] Due to their special functions in the language, most integrated development environments for Java use syntax highlighting to display keywords in a different color for easy identification.[citation needed]

The following is a list of the keywords in Java, along with brief descriptions of their functions:[1]

abstract
The abstract keyword is used to declare a class or method to be abstract. An abstract method has no implementation; all classes containing abstract methods must themselves be abstract, although not all abstract classes have abstract methods. Objects of a class which is abstract cannot be instantiated, but can be extended by other classes. All subclasses of an abstract class must either provide implementations for all abstract methods, or must also be abstract.[2]
assert
The assert keyword, which was added in J2SE 1.4,[1] is used to make an assertion鈥攁 statement which the programmer believes is always true at that point in the program. If assertions are enabled when the program is run and it turns out that an assertion is false, an AssertionError is thrown and the program terminates. This keyword is inteded to aid in debugging.[3]
boolean
The boolean keyword is used to declare a field that can store a boolean value; that is, either true or false.[4] This keyword is also used to declare that a method returns a value of type boolean.[5]
break
Used to resume program execution at the statement immediately following the current enclosing block or statement. If followed by a label, the program resumes execution at the statement immediately following the enclosing labeled statement or block.
byte
The byte keyword is used to declare a field that can store an 8-bit signed integer.[4] This keyword is also used to declare that a method returns a value of type byte.[5]
case
The case keyword is used to create individual cases in a switch statement; see switch.[6]
catch
Defines an exception handler鈥攁 group of statements that are executed if an exception is thrown in the block defined by a preceding try keyword. The code is executed only if the class of the thrown exception is assignment compatible with the exception class declared by the catch clause.
char
The char keyword is used to declare a field that can store a 16-bit Unicode character.[4] This keyword is also used to declare that a method returns a value of type char.[5]
class
A type that defines the implementation of a particular kind of object. A class definition defines instance and class fields, methods, and inner classes as well as specifying the interfaces the class implements and the immediate superclass of the class. If the superclass is not explicitly specified, the superclass is implicitly Object.
const
Although reserved as a keyword in Java, const is not used and has no function.[1]
continue
Used to resume program execution at the end of the current loop body. If followed by a label, continue resumes execution at the end of the enclosing labeled loop body.
default
The default can optionally be used in a switch statement to label a block of statements to be executed if no case matches the specified value; see switch.[6]
do
The do keyword is used in conjunction with while to create a do-while loop, which executes a block of statements assocated with the loop and then tests a boolean expression assocated with the while. If the expression evaluates to true, the block is executed again; this continues until the expression evaluates to false.[7]
double
The double keyword is used to declare a field that can hold a 64-bit double precision IEEE 754 floating-point number.[4] This keyword is also used to declare that a method returns a value of type double.[5]
else
The else keyword is used in conjunction with if to create an if-else statement, which tests a boolean expression; if the expression evaluates to true, the block of statements associated with the if are evaluated; if it evaluates to false, the block of statements associated with the else are evaluated.[8]
enum (as of J2SE 5.0)
A Java keyword used to declare an enumerated type. Enumerations extend the base class Enum.
extends
Used in a class declaration to specify the superclass; used in an interface declaration to specify one or more superinterfaces. Class X extends class Y to add functionality, either by adding fields or methods to class Y, or by overriding methods of class Y. An interface Z extends one or more interfaces by adding methods. Class X is said to be a subclass of class Y; Interface Z is said to be a subinterface of the interfaces it extends.
Also used to specify an upper bound on a type parameter in Generics.
final
Define an entity once that cannot be changed nor derived from later. More specifically: a final class cannot be subclassed, a final method cannot be overridden, and a final variable can occur at most once as a left-hand expression. All methods in a final class are implicitly final.
finally
Used to define a block of statements for a block defined previously by the try keyword. The finally block is executed after execution exits the try block and any associated catch clauses regardless of whether an exception was thrown or caught, or execution left method in the middle of the try or catch blocks using the return keyword.
float
The float keyword is used to declare a field that can hold a 32-bit single precision IEEE 754 floating-point number.[4] This keyword is also used to declare that a method returns a value of type float.[5]
for
The for keyword is used to create a for loop, which specifies a variable initialization, a boolean expression, and an incrementation. The variable initialization is performed first, and then the boolean expression is evaluated. If the expression evaluates to true, the block of statements assocated with the loop are executed, and then the incrementation is performed. The boolean expression is then evaluated again; this continues until the expression evaluates to false.[9]
As of J2SE 5.0,[citation needed] the for keyword can also be used to create a so-called "enhanced for loop", which specifies an array or Iterable object; each iteration of the loop executes the associated block of statements using a different element in the array or Iterable.[9]
goto
Although reserved as a keyword in Java, goto is not used and has no function.[1]
if
The if keyword is used to create an if statement, which tests a boolean expression; if the expression evaluates to true, the block of statements associated with the if statement is executed. This keyword can also be used to create an if-else statement; see else.[8]
implements
Included in a class declaration to specify one or more interfaces that are implemented by the current class. A class inherits the types and abstract methods declared by the interfaces.
import
Used at the beginning of a source file to specify classes or entire Java packages to be referred to later without including their package names in the reference. Since J2SE 5.0, import statements can import static members of a class.
instanceof
A binary operator that takes an object reference as its first operand and a class or interface as its second operand and produces a boolean result. The instanceof operator evaluates to true if and only if the runtime type of the object is assignment compatible with the class or interface.
int
The int keyword is used to declare a field that can hold a 32-bit signed two's complement integer.[4] This keyword is also used to declare that a method returns a value of type int.[5]
interface
Used to declare a special type of class that only contains abstract methods, constant (static final) fields and static interfaces. It can later be implemented by classes that declare the interface with the implements keyword.
long
The long keyword is used to declare a field that can hold a 64-bit signed two's complement integer.[4] This keyword is also used to declare that a method returns a value of type long.[5]
native
Used in method declarations to specify that the method is not implemented in the same Java source file, but rather in another language.
new
Used to create an instance of a class or array.
package
A group of types. Packages are declared with the package keyword.
private
The private keyword is used in the declaration of a method, field, or inner class; private members can only be accessed by other members of their own class.[10]
protected
The protected keyword is used in the declaration of a method, field, or inner class; protected members can only be accessed by members of ther own class or that class's subclasses.[10]
public
The public keyword is used in the declaration of a class, method, or field; public classes, methods, and fields can be accessed by the members of any class.[10]
return
Used to finish the execution of a method. It can be followed by a value required by the method definition that is returned to the caller.
short
The short keyword is used to declare a field that can hold a 16-bit signed two's complement integer.[4] This keyword is also used to declare that a method returns a value of type short.[5]
static
Used to declare a field, method or inner class as a class field. Classes maintain one copy of class fields regardless of how many instances exist of that class. static also is used to define a method as a class method. Class methods are bound to the class instead of to a specific instance, and can only operate on class fields. (Classes and interfaces declared as static members of another class or interface are actually top-level classes and are not inner classes.)
strictfp (as of J2SE 1.2)
A Java keyword used to restrict the precision and rounding of floating point calculations to ensure portability.
super
Used to access members of a class inherited by the class in which it appears. Allows a subclass to access overridden methods and hidden members of its superclass. The super keyword is also used to forward a call from a constructor to a constructor in the superclass.
Also used to specify a lower bound on a type parameter in Generics.
switch
The switch keyword is used in conjunction with case and default to create a switch statement, which evaluates a variable, matches its value to a specific case, and executes the block of statements associated with that case. If no case matches the value, the optional block labelled by default is executed, if included.[6]
synchronized
Used in the declaration of a method or code block to acquire the mutex lock for an object while the current thread executes the code. For static methods, the object locked is the class' Class. Guarantees that at most one thread at a time operating on the same object executes that code. The mutex lock is automatically released when execution exits the synchronized code. Fields, classes and interfaces cannot be declared as synchronized.
this
Used to represent an instance of the class in which it appears. this can be used to access class members and as a reference to the current instance. The this keyword is also used to forward a call from one constructor in a class to another constructor in the same class.
throw
Causes the declared exception instance to be thrown. This causes execution to continue with the first enclosing exception handler declared by the catch keyword to handle an assignment compatible exception type. If no such exception handler is found in the current method, then the method returns and the process is repeated in the calling method. If no exception handler is found in any method call on the stack, then the exception is passed to the thread's uncaught exception handler.
throws
Used in method declarations to specify which exceptions are not handled within the method but rather passed to the next higher level of the program. All uncaught exceptions in a method that are not instances of RuntimeException must be declared using the throws keyword.
transient
Declares that an instance field is not part of the default serialized form of an object. When an object is serialized, only the values of its non-transient instance fields are included in the default serial representation. When an object is deserialized, transient fields are initialized only to their default value.
try
Defines a block of statements that have exception handling. If an exception is thrown inside the try block, an optional catch block can handle declared exception types. Also, an optional finally block can be declared that will be executed when execution exits the try block and catch clauses, regardless of whether an exception is thrown or not. A try block must have at least one catch clause or a finally block.
void
The void keyword is used to declare that a method does not return any value.[5]
This keyword is also used as a nonfunctional statement.[citation needed]
volatile
Used in field declarations to specify that the variable is modified asynchronously by concurrently running threads. Methods, classes and interfaces thus cannot be declared volatile.
while
The while keyword is used to create a while loop, which tests a boolean expression and executes the block of statements associated with the loop if the expression evaluates to true; this continues until the expression evaluates to false. This keyword can also be used to create a do-while loop; see do.[7]


蹇嗛 2008-12-17 00:09 鍙戣〃璇勮
]]>
浣跨敤Java Generics綆鍖栨暟鎹簱瀛樺彇綾籇AO寮鍙?/title><link>http://m.tkk7.com/yifeng/archive/2008/08/24/223940.html</link><dc:creator>蹇嗛</dc:creator><author>蹇嗛</author><pubDate>Sat, 23 Aug 2008 21:39:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2008/08/24/223940.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/223940.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2008/08/24/223940.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/223940.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/223940.html</trackback:ping><description><![CDATA[<p><strong>鏈枃浠嬬粛鎬庝箞鏍蜂嬌鐢↗ava Generics鏉ョ畝鍖栨暟鎹簱瀛樺彇綾籇AO鐨勫紑鍙戯紝騫剁粰鍑轟簡涓涓畬鏁寸殑渚嬪瓙錛屽ぇ瀹跺彲浠ユ妸浠g爜鐢ㄥ湪瀹為檯鐨勫紑鍙戝簲鐢ㄤ腑銆?/strong></p> <p>鍦ㄧ郴緇熷紑鍙戜腑錛屼負(fù)浜嗛檷浣庤﹀悎鎬э紝涓鑸妸璺熸暟鎹簱鏈夊叧鐨勬搷浣滃皝瑁呭湪琚彨鍋欴AO錛圖ao Access Object錛夌殑綾婚噷銆備竴鑸珼AO鐨勫皝瑁呮湁浠ヤ笅鍑犱釜鍘熷垯錛?/p> <p>1銆佷竴涓〃鎿嶄綔灝佽鎴愪竴涓狣AO銆備緥濡傦細(xì)鎿嶄綔琛║ser鐨凞AO灝佽涓篣serDao.java錛屾搷浣淯serRole鐨凞AO灝佽涓篣serRole.java絳?/p> <p>2銆佸叿鏈夎壇濂界殑鎺ュ彛瀹氫箟銆備負(fù)浜嗕嬌鐢ㄧ畝鍗曚互鍙?qiáng)涓嶈嚦浜庤閿欒璋冪敤锛孌AO鎺ュ彛蹇呴』鏈夊叿浣撶殑鍨嬪畾涔夈備緥濡傦細(xì)鍙互鐩存帴<br /> User user = userDao.get(userId);鍙栧緱鎸囧畾userId鐨刄ser錛岃屼笉蹇呰繘琛屽己鍒剁被鍨嬭漿鎹?User user = (User)userDao.get(userId); [X]<br /> 涓轟簡閬垮厤璇搷浣滐紝userDao.delete(UserRole);搴旇鍦ㄧ紪璇戞湡灝辨姤閿欍?/p> <p>涓轟簡瀵笵AO榪涜鑹ソ鐨勫皝瑁咃紝JDK1.5涔嬪墠錛孌AO寮鍙戞槸涓涓ぇ閲忛噸澶嶄唬鐮佺殑浣撳姏榪囩▼錛汮DK1.5寮濮嬪紩鍏ヤ簡Generics姒傚康錛屾垜浠彲浠ュ埄鐢↗DK1.5鐨凣enerics鐗規(guī)уぇ澶х畝鍖朌AO寮鍙戙?/p> <p>Generics姒傚康</p> <p>Java鐨凣enerics灝辨槸Java鐨勬硾鍨嬶紝綾諱技浜嶤++鐨勬ā鏉挎蹇碉紝Generics浠嬬粛璧鋒潵姣旇緝澶嶆潅錛岀畝鍗曡鏉ワ紝娉涘瀷浠庤璦鐗規(guī)х殑搴曞眰涓婃敮鎸侊紝鍙互璁╀綘涓烘煇浜涚浉浼煎姛鑳藉畾涔変竴涓叿鏈夌粺涓鎺ュ彛鐨勯氱敤妯℃澘錛岃妯℃澘鍙互鎺ユ敹浠繪剰綾誨瀷騫跺簲鐢ㄥ埌綾繪垚鍛樺彉閲忕殑綾誨瀷錛屾柟娉曠殑鍙傛暟綾誨瀷錛屾柟娉曠殑榪斿洖鍊肩被鍨嬬瓑錛涘茍鍙互鍦ㄧ紪璇戞湡鏀寔綾誨瀷鐨勫畨鍏ㄨ漿鎹€備婦渚嬭錛?br /> java.util.List鏄竴涓硾鍨嬶紝涓涓畾涔変負(fù)List<User> userList;鐨勫彉閲弖serList錛屽彲浠ラ氳繃User user = userList.get(0);渚垮彲鐩存帴寰楀埌User錛屼笉鐢ㄧ粡榪囩被鍨嬬殑寮哄埗杞崲浜嗐?/p> <p>Generics鏇磋緇嗙殑浠嬬粛璇峰弬鑰冪浉鍏蟲枃绔狅紝榪欓噷涓嶅仛璇﹁堪銆?/p> <p>涓嬮潰涓句緥鎴戜滑緇欏嚭2縐岲AO鐨勫皝瑁呮柟娉曪紝涓縐嶆槸涓嶄嬌鐢↗ava Generics鐗規(guī)х殑涓鑸皝瑁呮柟娉曪紱涓縐嶆槸浣跨敤娉涘瀷鐨勫皝瑁呮柟娉曘傞氳繃姣旇緝錛屾垜浠細(xì)鍙戠幇Java鐨凣enerics鐗規(guī)у埌搴曚負(fù)鎴戜滑綆鍖栦簡鍝簺宸ヤ綔銆?/p> <h4>浣跨敤Java Generics鐗規(guī)у皝瑁匘AO</h4> <table class="content" id="table2" cellspacing="1" cellpadding="2" bgcolor="#999999"> <tbody> <tr class="altEventRow" bgcolor="#ffffff"> <th>鏂囦歡鍚?/th> <th>璇存槑</th> </tr> <tr class="eventRow" bgcolor="#ffffff"> <td>IDao.java</td> <td>dao鐨勯《灞傛娊璞℃帴鍙?/td> </tr> <tr class="altEventRow" bgcolor="#ffffff"> <td>AbstractDao.java</td> <td>IDao鐨勫疄鐜扮被錛屽疄鐜頒簡get/update/delete絳夊熀鏈搷浣?/td> </tr> <tr class="eventRow" bgcolor="#ffffff"> <td>User.java</td> <td>USER琛ㄥ搴旂殑entity瀹氫箟</td> </tr> <tr class="altEventRow" bgcolor="#ffffff"> <td>IUserDao.java</td> <td>USER琛ㄦ搷浣淒AO鎺ュ彛瀹氫箟</td> </tr> <tr class="eventRow" bgcolor="#ffffff"> <td>UserDao.java</td> <td>USER琛ㄦ搷浣淒AO瀹炵幇</td> </tr> <tr class="altEventRow" bgcolor="#ffffff"> <td>HelloGenerics.java</td> <td>嫻嬭瘯綾?/td> </tr> </tbody> </table> <p>IDao.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td>// super dao interface<br /> <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">interface</span> IDao <T, PK <span style="font-weight: bold; color: #7f0055">extends</span> Serializable> {<br />     <span style="font-weight: bold; color: #7f0055">public</span> T get(PK pk);<br />     <span style="font-weight: bold; color: #7f0055">public</span> List <T>getAll();<br />     <span style="font-weight: bold; color: #7f0055">public</span> PK save(T entity);<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> update(T entity);<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> saveOrUpdate(T entity);<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> delete(T entity);<br /> } </td> </tr> </tbody> </table> <p>AbstractDao.java </p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td>//super abstract dao class<br /> </span><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">abstract</span> <span style="font-weight: bold; color: #7f0055">class</span> AbstractDao <T, PK <span style="font-weight: bold; color: #7f0055">extends</span> Serializable><span style="font-weight: bold; color: #7f0055">implements</span> IDao<T, PK> {<br />     <span style="font-weight: bold; color: #7f0055">private</span> Class clz;<br />     <br />     <span style="font-weight: bold; color: #7f0055">public</span> AbstractDao(Class clz) {<br />         this.clz = clz;<br />     }<br />     <br />     <span style="font-weight: bold; color: #7f0055">public</span> T get(PK pk) {<br />         <span style="font-weight: bold; color: #7f0055">return</span> (T)getSession().get(clz, pk);<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> List <T>getAll() {<br />         <span style="font-weight: bold; color: #7f0055">return</span> getSession().createCriteria(clz).list();<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> PK save(T entity) {<br />         <span style="font-weight: bold; color: #7f0055">return</span> (PK)getSession().save(entity);<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> update(T entity) {<br />         getSession().update(entity);<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> saveOrUpdate(T entity) {<br />         getSession().saveOrUpdate(entity);<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> delete(T entity) {<br />         getSession().delete(entity);<br />     }<br />     <br />     <span style="font-weight: bold; color: #7f0055">private</span> Session session;<br />     <span style="font-weight: bold; color: #7f0055">protected</span> Session getSession() {<br />         <span style="color: #3f7f5f">//wrap session in a class such as HibernateUtils, then you can use  HibernateUtils.getCurrentSession() for getting a session.<br /> </span>        <span style="font-weight: bold; color: #7f0055">return</span> session;<br />     }<br /> } </td> </tr> </tbody> </table> <p>User.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="color: #3f7f5f">//persist entity<br /> </span><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">class</span> User {<br />     <span style="font-weight: bold; color: #7f0055">private</span> String id;<br />     <span style="font-weight: bold; color: #7f0055">private</span> String name;<br />     <br />     <span style="font-weight: bold; color: #7f0055">public</span> String getId() {<br />         <span style="font-weight: bold; color: #7f0055">return</span> id;<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> setId(String id) {<br />         this.id = id;<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> String getName() {<br />         <span style="font-weight: bold; color: #7f0055">return</span> name;<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> setName(String name) {<br />         this.name = name;<br />     }<br />     <br />     <span style="color: #3f7f5f">//... setter/getter HERE<br /> </span>} </td> </tr> </tbody> </table> <p>IUserDao.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="color: #3f7f5f">//User Dao interface<br /> </span><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">interface</span> IUserDao <span style="font-weight: bold; color: #7f0055">extends</span> IDao <User, String> {<br />     <span style="color: #3f7f5f">// all are empty<br /> </span>} </td> </tr> </tbody> </table> <p>UserDao.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="color: #3f7f5f">//UserDao Implementation<br /> </span><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">class</span> UserDao <span style="font-weight: bold; color: #7f0055">extends</span> AbstractDao <User, String> <span style="font-weight: bold; color: #7f0055">implements</span> IUserDao {<br />     <span style="font-weight: bold; color: #7f0055">public</span> UserDao() {<br />         <span style="font-weight: bold; color: #7f0055">super</span>(User.<span style="font-weight: bold; color: #7f0055">class</span>);<br />     }<br />     <span style="color: #3f7f5f">// or use the following constructor<br /> </span>    <span style="color: #3f7f5f">//public UserDao(Class<User> type) {<br /> </span>    <span style="color: #3f7f5f">//    super(type);<br /> </span>    <span style="color: #3f7f5f">//}<br /> </span>}</td> </tr> </tbody> </table> <p>HelloGenerics.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">class</span> HelloGenerics {<br /> <br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">static</span> <span style="font-weight: bold; color: #7f0055">void</span> main(String[] args) {<br />         IUserDao userDao = <span style="font-weight: bold; color: #7f0055">new</span> UserDao();<br />         User user = userDao.get("<span style="color: #2a00ff">1</span>");<br />         <span style="font-weight: bold; color: #7f0055">if</span> (user != <span style="font-weight: bold; color: #7f0055">null</span>) {<br />             System.out.println(user.getName());<br />         }<br />         <br />         List<User> userList = userDao.getAll();<br />         <span style="font-weight: bold; color: #7f0055">for</span> (User u:userList) {<br />             System.out.println(user.getName());<br />         }<br />     }<br /> } </td> </tr> </tbody> </table> <p>鎴戜滑鍙互鐪嬪埌IUserDao.java涓嶶serDao.java闈炲父綆鍗曘?/p> <h4>涓嶄嬌鐢↗ava Generics鐗規(guī)AO鐨勫皝瑁?/h4> <p>鍚屾牱錛屾垜浠粰鍑轟笉浣跨敤Java Generics鐗規(guī)AO鐨勫皝瑁呫傝灝佽涔熸槸涓涓叿鏈夎壇濂界粨鏋勬х殑灝佽銆?/p> <p>鏂囦歡鍒楄〃2錛?/p> <table class="content" id="table3" cellspacing="1" cellpadding="1" bgcolor="#999999"> <tbody> <tr class="eventRow" bgcolor="#ffffff"> <th>鏂囦歡鍚?/th> <th>璇存槑</th> </tr> <tr class="altEventRow" bgcolor="#ffffff"> <td>DaoUtils.java</td> <td>dao閫氱敤宸ュ叿綾伙紝鎻愪緵get/update/delete絳夊熀鏈搷浣?/td> </tr> <tr class="eventRow" bgcolor="#ffffff"> <td>User.java</td> <td>USER琛ㄥ搴旂殑entity瀹氫箟</td> </tr> <tr class="altEventRow" bgcolor="#ffffff"> <td>IUserDao.java</td> <td>USER琛ㄦ搷浣淒AO鎺ュ彛瀹氫箟</td> </tr> <tr class="eventRow" bgcolor="#ffffff"> <td>UserDao.java</td> <td>USER琛ㄦ搷浣淒AO瀹炵幇</td> </tr> <tr class="altEventRow" bgcolor="#ffffff"> <td>HelloGenerics.java</td> <td>嫻嬭瘯綾?/td> </tr> </tbody> </table> <p>DaoUtils.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">class</span> DaoUtils {<br />         <br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">static</span> Object get(Class clz, Serializable pk) {<br />         <span style="font-weight: bold; color: #7f0055">return</span> getSession().get(clz, pk);<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">static</span> List getAll(Class clz) {<br />         <span style="font-weight: bold; color: #7f0055">return</span> getSession().createCriteria(clz).list();<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">static</span> Serializable save(Object entity) {<br />         <span style="font-weight: bold; color: #7f0055">return</span> getSession().save(entity);<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">static</span> <span style="font-weight: bold; color: #7f0055">void</span> update(Object entity) {<br />         getSession().update(entity);<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">static</span> <span style="font-weight: bold; color: #7f0055">void</span> saveOrUpdate(Object entity) {<br />         getSession().saveOrUpdate(entity);<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">static</span> <span style="font-weight: bold; color: #7f0055">void</span> delete(Object entity) {<br />         getSession().delete(entity);<br />     }<br />     <br />     <span style="font-weight: bold; color: #7f0055">private</span> <span style="font-weight: bold; color: #7f0055">static</span> Session session;<br />     <span style="font-weight: bold; color: #7f0055">protected</span> <span style="font-weight: bold; color: #7f0055">static</span> Session getSession() {<br />         <span style="color: #3f7f5f">//wrap session in a class such as HibernateUtils, then you can use  HibernateUtils.getCurrentSession() for getting a session.<br /> </span>        <span style="font-weight: bold; color: #7f0055">return</span> session;<br />     }<br /> } </td> </tr> </tbody> </table> <p>User.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="color: #3f7f5f">//persist entity<br /> </span><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">class</span> User {<br />     <span style="font-weight: bold; color: #7f0055">private</span> String id;<br />     <span style="font-weight: bold; color: #7f0055">private</span> String name;<br />     <br />     <span style="font-weight: bold; color: #7f0055">public</span> String getId() {<br />         <span style="font-weight: bold; color: #7f0055">return</span> id;<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> setId(String id) {<br />         this.id = id;<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> String getName() {<br />         <span style="font-weight: bold; color: #7f0055">return</span> name;<br />     }<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> setName(String name) {<br />         this.name = name;<br />     }<br />     <br />     <span style="color: #3f7f5f">//... setter/getter HERE<br /> </span>} </td> </tr> </tbody> </table> <p>IUserDao.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="color: #3f7f5f">//User Dao interface<br /> </span><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">interface</span> IUserDao {<br />     <span style="font-weight: bold; color: #7f0055">public</span> User get(String pk);<br />     <span style="font-weight: bold; color: #7f0055">public</span> List getAll();<br />     <span style="font-weight: bold; color: #7f0055">public</span> String save(User entity);<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> update(User entity);<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> saveOrUpdate(User entity);<br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> delete(User entity);<br /> } </td> </tr> </tbody> </table> <p>UserDao.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="color: #3f7f5f">//UserDao Implementation<br /> </span><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">class</span> UserDao <span style="font-weight: bold; color: #7f0055">implements</span> IUserDao {<br /> <br />     <span style="font-weight: bold; color: #7f0055">public</span> User get(String pk) {<br />         <span style="font-weight: bold; color: #7f0055">return</span> (User)DaoUtils.get(User.class, pk);<br />     }<br />     <br />     <span style="font-weight: bold; color: #7f0055">public</span> List getAll() {<br />         <span style="font-weight: bold; color: #7f0055">return</span> DaoUtils.getAll(User.<span style="font-weight: bold; color: #7f0055">class</span>);<br />     }<br /> <br />     <span style="font-weight: bold; color: #7f0055">public</span> String save(User entity) {<br />         <span style="font-weight: bold; color: #7f0055">return</span> (String)DaoUtils.save(entity);<br />     }<br /> <br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> update(User entity) {<br />         DaoUtils.update(entity);<br />     }<br /> <br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> saveOrUpdate(User entity) {<br />         DaoUtils.saveOrUpdate(entity);<br />     }<br /> <br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">void</span> delete(User entity) {<br />         DaoUtils.delete(entity);<br />     }<br /> } </td> </tr> </tbody> </table> <p>HelloGenerics.java</p> <table class="content" bordercolor="#ffffcc" height="63" cellspacing="0" cellpadding="0" width="81%" bgcolor="#f9f9f9" border="0"> <tbody> <tr> <td><span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">class</span> HelloGenerics {<br /> <br />     <span style="font-weight: bold; color: #7f0055">public</span> <span style="font-weight: bold; color: #7f0055">static</span> <span style="font-weight: bold; color: #7f0055">void</span> main(String[] args) {<br />         IUserDao userDao = <span style="font-weight: bold; color: #7f0055">new</span> UserDao();<br />         User user = userDao.get("<span style="color: #2a00ff">1</span>");<br />         <span style="font-weight: bold; color: #7f0055">if</span> (user != <span style="font-weight: bold; color: #7f0055">null</span>) {<br />             System.out.println(user.getName());<br />         }<br />         <br />         List<User> userList = userDao.getAll();<br />         <span style="font-weight: bold; color: #7f0055">for</span> (User u:userList) {<br />             System.out.println(user.getName());<br />         }<br />     }<br /> }</td> </tr> </tbody> </table> <p>鎴戜滑娉ㄦ剰鍒癐UserDao.java涓嶶serDao.java鐨勫疄鐜版瘮浣跨敤Java Generics鐗規(guī)х殑鎯呭喌瑕佸鏉傚浜嗐?/p> <img src ="http://m.tkk7.com/yifeng/aggbug/223940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">蹇嗛</a> 2008-08-24 05:39 <a href="http://m.tkk7.com/yifeng/archive/2008/08/24/223940.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://goldwellib.com" target="_blank">成人妇女免费播放久久久</a>| <a href="http://011107.com" target="_blank">亚洲网站视频在线观看</a>| <a href="http://6nn5.com" target="_blank">亚洲欧美日韩综合久久久久 </a>| <a href="http://jjwgzx.com" target="_blank">中文字幕无码精品亚洲资源网久久</a>| <a href="http://gjwlgzs.com" target="_blank">国产激情免费视频在线观看</a>| <a href="http://hwjyrck.com" target="_blank">亚洲美女在线国产</a>| <a href="http://xxxck.com" target="_blank">男女污污污超污视频免费在线看</a>| <a href="http://773311h.com" target="_blank">国产免费爽爽视频免费可以看</a>| <a href="http://zzo8.com" target="_blank">国产黄在线播放免费观看</a>| <a href="http://726kxw.com" target="_blank">亚洲AV无码一区二区三区DV</a>| <a href="http://222941.com" target="_blank">亚洲AV无码专区在线亚</a>| <a href="http://zzzttt669.com" target="_blank">xvideos永久免费入口</a>| <a href="http://sdyzzs.com" target="_blank">一区二区三区亚洲视频</a>| <a href="http://zhaosaohuo.com" target="_blank">免费VA在线观看无码</a>| <a href="http://55xxb.com" target="_blank">亚洲熟伦熟女新五十路熟妇</a>| <a href="http://zhongxueping888.com" target="_blank">免费一区二区三区在线视频</a>| <a href="http://89kino.com" target="_blank">亚洲综合网站色欲色欲</a>| <a href="http://23usxx.com" target="_blank">免费h视频在线观看</a>| <a href="http://jiujiujingpin.com" target="_blank">亚洲美女中文字幕</a>| <a href="http://jnyygs.com" target="_blank">97热久久免费频精品99</a>| <a href="http://xseporn.com" target="_blank">亚洲熟妇AV日韩熟妇在线</a>| <a href="http://87fulitv.com" target="_blank">国产色婷婷精品免费视频</a>| <a href="http://see01.com" target="_blank">美国免费高清一级毛片</a>| <a href="http://138site.com" target="_blank">亚洲欧洲美洲无码精品VA</a>| <a href="http://5079157.com" target="_blank">日本在线免费播放</a>| <a href="http://mp4888.com" target="_blank">亚洲va在线va天堂va手机</a>| <a href="http://hn283.com" target="_blank">在线免费观看污网站</a>| <a href="http://scbangde.com" target="_blank">无遮挡国产高潮视频免费观看</a>| <a href="http://www55xx.com" target="_blank">国产亚洲精品不卡在线</a>| <a href="http://hqshimo.com" target="_blank">日本一卡精品视频免费</a>| <a href="http://cao8080.com" target="_blank">中文字幕亚洲精品无码</a>| <a href="http://6266tv.com" target="_blank">亚洲美女高清一区二区三区</a>| <a href="http://kingrel.com" target="_blank">99ee6热久久免费精品6</a>| <a href="http://wbkk88.com" target="_blank">亚洲乱人伦中文字幕无码</a>| <a href="http://sjkuaixun.com" target="_blank">亚洲精品视频在线观看你懂的</a>| <a href="http://kph37.com" target="_blank">久久青草国产免费观看</a>| <a href="http://1000hu.com" target="_blank">亚洲最大无码中文字幕</a>| <a href="http://sxgzjssb.com" target="_blank">自拍偷自拍亚洲精品被多人伦好爽 </a>| <a href="http://shaolingtongluo.com" target="_blank">亚洲色大成网站www尤物</a>| <a href="http://4husese.com" target="_blank">亚洲精品一级无码鲁丝片</a>| <a href="http://hgbookvip.com" target="_blank">99在线在线视频免费视频观看 </a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>