通过Java反射调用方法
这是个测试用的例子,通过反射调用对象的方法。
TestRef.java
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
/**
* Created by IntelliJ IDEA.
* File: TestRef.java
* User: leizhimin
* Date: 2008-1-28 14:48:44
*/
public class TestRef {
public static void main(String args[]) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
Foo foo = new Foo("这个一个Foo对象!");
Class clazz = foo.getClass();
Method m1 = clazz.getDeclaredMethod("outInfo");
Method m2 = clazz.getDeclaredMethod("setMsg", String.class);
Method m3 = clazz.getDeclaredMethod("getMsg");
&n ......
package Demo;
// Java泛型方法
class Demo26 {
public <T> T fun(T t) { // 可以接收任意类型的数据
return t; // 直接把参数返回
}
}
public class GenericsDemo26 {
public static void main(String args[]) {
Demo26 d = new Demo26(); // 实例化Demo对象
String str = d.fun("it"); // 传递字符串
int i = d.fun(30); // 传递数字,自动装箱
System.out.println(str); // 输出内容
System.out.println(i); // 输出内容
}
} ......
package Demo;
// 通过泛型方法返回泛型类型
class Info27<T extends Number> { // 指定上限,只能是数字类型
private T var; // 此类型由外部决定
public T getVar() {
return this.var;
}
public void setVar(T var) {
this.var = var;
}
public String toString() { // 覆写Object类中的toString()方法
return this.var.toString();
}
}
public class GenericsDemo27 {
public static void main(String args[]) {
Info27<Integer> i = fun(30);
System.out.println("Value Of Number : " + i.getVar());
}
public static <T extends Number> Info27<T> fun(T param) { // 方法中传入或返回的泛型类型由调用方法时所设置的参数类型决定
Info27<T> temp = new Info27<T>(); // 根据传入的数据类型实例化Info
temp.setVar(param); // 将传递的内容设置到Info对象的var属性之中
return temp; // 返回实例化对象
}
} ......
package Demo;
// 使用泛型统一传入的参数类型
class Info28<T> {
private T var; // 此类型由外部决定
public T getVar() {
return this.var;
}
public void setVar(T var) {
this.var = var;
}
public String toString() { // 覆写Object类中的toString()方法
return this.var.toString();
}
}
public class GenericsDemo28 {
public static void main(String args[]) {
Info28<String> i1 = new Info28<String>();
Info28<String> i2 = new Info28<String>();
i1.setVar("99"); // 设置内容
i2.setVar("it"); // 设置内容
add(i1, i2);
}
public static <T> void add(Info28<T> i1, Info28<T> i2) {
System.out.println(" Key Of String : " + i1.getVar()
+ " / Value Of String : " + i2.getVar());
}
} ......
原帖地址:http://www.hengxinsoft.com/2009/07/ubuntu%E4%B8%8Bjava%E7%8E%AF%E5%A2%83%E7%9A%84%E6%90%AD%E5%BB%BA/
安装
打开终端:输入命令:
sudo apt-get install sun-java6-jdk
提示:安装过程中需要你回答是否同意使用协议(终端中红蓝色的提示界面),此时按tab键至OK,再按回车即可正常安装
待安装完毕后选择默认Java.
运行命令:
sudo update-alternatives --config java
执行后会出现类似如下的画面:
There are 2 alternatives which provide `java'.
Selection Alternative
-----------------------------------------------
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java
2 /usr/lib/jvm/java-6-sun/jre/bin/java
Press enter to keep the default[*], or type selection number:
输入“2”即可,然后按回车键确定。
配置JAVA环境变量:
在终端中运行如下命令:
$sudo gedit /etc/environmet
在其中添加如下两行(具体配置内容根据根据自己实际情况):
CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib
JAVA_HOME=/usr/lib/jvm/java-6-sun
保存退出后,运行如下命令:
$sudo gedit /etc/jvm
将文件中的“/usr/lib/jvm/java ......
package Demo;
// Java泛型数组
public class GenericsDemo30 {
public static void main(String args[]) {
Integer i[] = fun1(1, 2, 3, 4, 5, 6); // 返回泛型数组
fun2(i);
}
public static <T> T[] fun1(T... arg) { // 接收可变参数
return arg; // 返回泛型数组
}
public static <T> void fun2(T param[]) { // 输出
System.out.print(" 接收泛型数组: ");
for (T t : param) {
System.out.print(t + " ");
}
}
} ......