① java JTextField里的值怎么获取
凡是e.e.getKeyCode()方法的返回值,一律要用VK_开头的来进比较
publicvoidkeyPressed(KeyEvente){
if(e.getKeyCode()==KeyEvent.VK_CONTROL){
//dosomething
}
}
KeyEvent.CTRL_MASK,是用来处理修饰码的,不是用在这里。
if((e.getModifiersEx()&KeyEvent.CTRL_DOWN_MASK)!=0){
}
② JAVA反射Field
//直接上例子代码import java.lang.reflect.Field;public class Test {
public final int a=5;
public static void main(String[] args) {
Test test = new Test();
try {
Field field = Test.class.getField("a");//指定要获取的字段名
//从Test对象中获取一个整形值;相应的也有getFloat()/getBoolean()等等方法。。详见JDK文档
System.out.println(field.getInt(test));
//如果不能确定是什么数据类型可以返回一个Object
Object obj = field.get(test);
System.out.println(obj);
System.out.println(obj.getClass().getName());//获取对象的数据类型
} catch (Exception e) {
e.printStackTrace();
}
}
}
③ java中的映射Field,如果有个实例field里面只有一个非静态啊字段,用get()获得的时候,为什么要传参数
如果是静态变量,即类变量
需要field.get(这里传Class实例)
如果是对象变量
需要field.get(这里传对象)
这个参数是必须的,否则get无法确定你要从哪儿获取这个field的值
例子:
Field field = Integer.class.getDeclaredField("MAX_VALUE");//静态变量
System.out.println(field.get(Integer.class));//输出2147483647 即Integer.MAX_VALUE
Integer i = new Integer(100);
field = Integer.class.getDeclaredField("value");//非静态
field.setAccessible(true);
field.get(i);//这里必须用对象
System.out.println(field.get(i));//输出100