zoukankan      html  css  js  c++  java
  • java反射小例子

    package com.txwsqk.reflect;
    
    public class Car {
    
    	private String brand;
    	private String color;
    	private int maxspeed;
    	
    	public Car(){}
    	public Car(String brand, String color, int maxspeed){
    		
    		this.brand = brand;
    		this.color = color;
    		this.maxspeed = maxspeed;
    	}
    	
    	public void intruduce(){
    		System.out.println("brand "+brand+" color: "+color+" maxspeed: "+maxspeed);
    	}
    	
    	public String getBrand() {
    		return brand;
    	}
    	public void setBrand(String brand) {
    		this.brand = brand;
    	}
    	public String getColor() {
    		return color;
    	}
    	public void setColor(String color) {
    		this.color = color;
    	}
    	public int getMaxspeed() {
    		return maxspeed;
    	}
    	public void setMaxspeed(int maxspeed) {
    		this.maxspeed = maxspeed;
    	}
    	
    }
    

     主函数

    package com.txwsqk.reflect;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Method;
    
    public class CarTest {
    
    	public static Car initByDefaultConst() throws Throwable{
    		ClassLoader loader = Thread.currentThread().getContextClassLoader();
    		Class<?> clazz = loader.loadClass("com.txwsqk.reflect.Car");
    		Constructor<?> cons = clazz.getDeclaredConstructor((Class[])null);
    		Car car = (Car) cons.newInstance();
    		
    		Method setBrand = clazz.getMethod("setBrand", String.class);
    		setBrand.invoke(car, "BMW");
    		Method setColor = clazz.getMethod("setColor", String.class);
    		setColor.invoke(car, "red");
    		Method setMaxspeed = clazz.getMethod("setMaxspeed", int.class);
    		setMaxspeed.invoke(car, 150);
    		return car;
    		
    	}
    	public static void main(String[] args) throws Throwable {
    		Car car = initByDefaultConst();
    		car.intruduce();
    
    	}
    
    }
    

     输出:

    brand BMW color: red maxspeed: 150

  • 相关阅读:
    微信小程序Rx 引入 调用合并的方法
    小程序 引入 es-canvas wx:for 单页面渲染多个for不同数据
    jquery操作数组对象
    Docker MySQL 8 主从配置
    CentOS 7 安装 LNMP
    lnmp1.6 配置负载均衡
    Nginx + PHP-FPM 参数优化、性能监视和问题排查
    「查缺补漏」巩固你的Nginx知识体系
    Android生成SHA1(证书指纹)
    android studio 如何把依赖导出成 jar
  • 原文地址:https://www.cnblogs.com/txwsqk/p/3816711.html
Copyright © 2011-2022 走看看