`
a283037321
  • 浏览: 16899 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
使用Graphics2D画虚线和设置线的宽度 使用Graphics2D画虚线和设置线的宽度
public   void   paint(Graphics   g)   {   
                  Graphics2D   g2d   =   (Graphics2D)g;   
                  Stroke   st   =   g2d.getStroke();   
                  Stroke   bs;   
                  //LINE_TYPE_DASHED   
                  bs   =   new   BasicStroke(1,   BasicStroke.CAP_BUTT,   
                                                            BasicStroke.JOIN_BEVEL,   0,   
                                                            new   float[]{16,   4},   0);   
                  g2d.setStroke(bs);   
                  g2d.drawLine(10,   10,   10,   500);   
    
                  g2d.setStroke(st);   
          }
java反射机制 java反射机制应用例子
package fanshe.entity;
/**
 * 测试实体
 * @author hewei
 *
 */
public class Animal {
	
	private String name;
	private int age;
	public int text;
	
	public Animal(){}
	public Animal(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	public void speak(){
		System.out.println("my name is "+this.name+"; i am "+this.age+"years old!");
	}
	private String chat(String name){
		return "I chat with"+name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getText() {
		return text;
	}

	public void setText(int text) {
		this.text = text;
	}
}
package fanshe;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

import fanshe.entity.Animal;
/**
 *  java反射机制 reflection
 *  运行时创建类的对象
 *  访问其字段、方法
 *               测试类
 * @author hewei
 *
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			Class<?> classType = Class.forName("fanshe.entity.Animal");  //获得Class对象
			Method[] ms = classType.getMethods();//获得对象的public方法
			for(Method m : ms){  
				System.out.println("method "+m);
			}
			Field[] field = classType.getFields(); //获得该class所有声明的field(public)  
			for(Field f : field){
				System.out.println("field "+f);
			}
			/**
			 * 创建Animal 对象 
			 */
			Animal animal = (Animal)classType.newInstance();
			animal.setAge(12);
			animal.setName("小熊猫");
			animal.speak();
			/**
			 * 创建 Animal对象 通过带参构造函数
			 */
			Constructor<?> c = classType.getConstructor(new Class[]{String.class,int.class});
			Animal animal2 = (Animal) c.newInstance(new Object[]{"大熊猫",20});
			animal2.speak();
			/**
			 * 通过反射访问对象的私有方法
			 */
			Method chatMethod = classType.getDeclaredMethod("chat", new Class[]{String.class});//通过getDeclareMethod()取得私有方法
			chatMethod.setAccessible(true);//設置方法可見性為 true
			String returnString =(String) chatMethod.invoke(animal, new Object[]{"小泽玛莉亚"});
			System.out.println(returnString);
			/**
			 * 通过反射访问对象私有属性
			 */
			Field privateF = classType.getDeclaredField("name");//通过getDeclaredField()取得私有字段
			privateF.setAccessible(true);//设置属性的可见性为true
			privateF.set(animal, "苍井空");
			animal.speak();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


Global site tag (gtag.js) - Google Analytics