java反射(收集)

May 3, 2007

Class创建:

1 String name = “caterpillar”;
Class stringClass = name.getClass();

2 Class stringClass = String.class;

3 Class c = Class.forName(args[0]);

Class物件的訊息是在編譯時期就被加入至.class檔案中,它是Java支援執行時期型別辨識(RTTI,Run- Time Type Information或Run-Time Type Identification)的一種方式,在編譯時期編譯器會先檢查對應的.class檔案,而執行時期JVM在沒有用到該類別時,就不會載入它,如果要用到時,JVM會先檢查對應的Class物件是否已經載入,如果沒有載入,則會尋找對應的.class檔案並載入它。

您可以使用Class.forName()方法動態加載類別,之後使用Class的newInstance()方法產生實例

从Class中获取信息
Class c = Class.forName(args[0]);
Package p = c.getPackage();
System.out.println(p.getName());
int m = c.getModifiers();
System.out.print(Modifier.toString(m) + ” “);
if(Modifier.isInterface(m)) { System.out.print(”interface “); }
else { System.out.print(”class “); }
System.out.println(c.getName() + ” {”);
Field[] fields = c.getDeclaredFields();
for(Field field : fields) {
System.out.print(”\t” + Modifier.toString(field.getModifiers()));
System.out.print(” ” + field.getType().getName() + ” “);
System.out.println(field.getName() + “;”);
}

候捷谈Java反射机制(转)

Java反射机制

摘要

Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。本文借由实例,大面积示范Reflection APIs。

(more…)

java国际化(转)

國際化的英文是Internationalization,因為單字中總共有18個字母,簡稱I18N,目的是讓應用程式可以應地區不同而顯示不同的訊息,最基本的就是讓不同語系的使用者可以看到屬於自己語系的訊息,像是英文語系的看到英文內容,而中文語系的可以看到中文的內容。
(more…)

‘You’ve got to find what you love,’ Jobs says

史蒂夫·保罗·乔布斯(Steve Paul Jobs,1955年2月24日出生-)是蘋果電腦的現任首席執行長(首席执行官)兼創辦人之一。同時也是Pixar動畫公司的董事長及首席執行長。
(more…)

URLConnection相关

import java.net.*;
import java.io.*;
import java.util.Date;

/**
* A class that displays information about a URL.
**/
public class GetURLInfo {
/** Use the URLConnection class to get info about the URL */
public static void printinfo(URL url) throws IOException {
URLConnection c = url.openConnection( ); // Get URLConnection from URL
c.connect( ); // Open a connection to URL

// Display some information about the URL contents
System.out.println(” Content Type: ” + c.getContentType( ));
System.out.println(” Content Encoding: ” + c.getContentEncoding( ));
System.out.println(” Content Length: ” + c.getContentLength( ));
System.out.println(” Date: ” + new Date(c.getDate( )));
System.out.println(” Last Modified: ” +new Date(c.getLastModified( )));
System.out.println(” Expiration: ” + new Date(c.getExpiration( )));

// If it is an HTTP connection, display some additional information.
if (c instanceof HttpURLConnection) {
HttpURLConnection h = (HttpURLConnection) c;
System.out.println(” Request Method: ” + h.getRequestMethod( ));
System.out.println(” Response Message: ” +h.getResponseMessage( ));
System.out.println(” Response Code: ” + h.getResponseCode( ));
}
}

/** Create a URL, call printinfo( ) to display information about it. */
public static void main(String[ ] args) {
try { printinfo(new URL(args[0])); }
catch (Exception e) {
System.err.println(e);
System.err.println(”Usage: java GetURLInfo “);
}
}
}

(more…)