Method方法学习

原创 2013年12月04日 10:10:06

 

package hb.util;

import java.util.Date;

public class Person {

	private String name;
	private String password;
	private Date birthday;
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public String print(Person person){
		System.out.println("姓名:" + person.name + "密码:" + person.password + "生日" + person.birthday);
		return "姓名:" + person.name + "密码:" + person.password + "生日" + person.birthday;
	}
}

 

 

package hb.util;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;


public class ParamObject {

	private Object instance;
	private String method;
	
	public ParamObject(Object instance,String method){
		this.instance = instance;
		this.method = method;
	}
	
	public Object execute() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{
		Class cls = instance.getClass();
		Method md = cls.getMethod(this.method, null);//得到字符串为this.method的方法,并且没有参数
		return md.invoke(instance, null);
		
	}
}

 

 

package hb.util;

import java.lang.reflect.InvocationTargetException;
import java.util.Date;

public class TestParamObject {

	public static void main(String[] args) throws SecurityException, IllegalArgumentException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {

		Person person = new Person();
		person.setName("name");
		person.setPassword("person");
		person.setBirthday(new Date());
		//得到字符串
		ParamObject param = new ParamObject(person, "getPassword");
		if(param.execute() instanceof String){
			System.out.println("返回的结果是String 类型");
			System.out.println(param.execute());
		}else{
			System.out.println("返回的结果不是String 类型");
		}
		//得到非字符串
		ParamObject param1 = new ParamObject(person, "getBirthday");
		if(param1.execute() instanceof String){
			System.out.println("返回的结果是String 类型");
			System.out.println(param1.execute());
		}else{
			System.out.println("返回的结果不是String 类型");
			System.out.println(param1.execute());
		}
	}

}

 

 

package hb.util;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;

public class TestMethodInvoke {

	public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
		
		Person person = new Person();
		person.setName("name");
		person.setPassword("person");
		person.setBirthday(new Date());
		//得到方法名字是print,参数是Person类型的方法
		Method md = person.getClass().getMethod("print", Person.class);
		md.invoke(person, person);//执行第一个person对象的的print方法,传递第二个person作为参数
		if(md.invoke( person, person) instanceof String){
			System.out.println("返回的是String 类型");
			
		}
	}

}

 

再谈机器学习中的归一化方法(Normalization Method)

机器学习、数据挖掘工作中,数据前期准备、数据预处理过程、特征提取等几个步骤几乎要花费数据工程师一半的工作时间。同时,数据预处理的效果也直接影响了后续模型能否有效的工作。然而,目前的大部分学术研究主要集...

设计模式C++学习笔记之五(Factory Method工厂方法模式)

设计模式C++学习笔记之五(Factory Method工厂方法模式) 工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类...

iOS runtime学习之Method Swizzling(方法调配技术)

iOS runtime Method swizzling

设计模式C++学习笔记之九(Template Method模板方法模式)

转自 : http://www.cnblogs.com/wanggary/archive/2011/04/15/2016619.html 模板模式也是相当简单的一种模式,而且是比较常...

APS.NET_MVC5学习笔记-验证编辑方法(Edit method)和编辑视图(Edit view)

在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图。但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好。打开Models \ Movie...

设计模式学习笔记---模板方法模式template method pattern(Java版)

一、场景 客服到银行办理业务: 1、取号排队 2、办理具体现金/陷阱/转账/企业/个人/理财业务 3、给银行工作人员评分二、实质 它定义了一个操作中的算法骨架...

Java设计模式学习笔记之 —— 模板方法(Template Method)

跟随郭霖大神的脚步学习设计模式,真是通俗易懂~赞: 原文出处:http://blog.csdn.net/guolin_blog/article/details/8744002模板方法: 定义一个操...

简单易学的机器学习算法——集成方法(Ensemble Method)

一、集成学习方法的思想     前面介绍了一系列的算法,每个算法有不同的适用范围,例如有处理线性可分问题的,有处理线性不可分问题。在现实世界的生活中,常常会因为“集体智慧”使得问题被很容易解决,那么...

设计模式深入学习--Template Method模板方法模式(行为型模式)

今天继续来聊下Template Method模板方法模式 。 模板方法模式——在一个抽象类中定义一个操作中的算法骨架(对应于生活中的大家下载的模板),而将一些步骤延迟到子类中去实现(对应于我们根据自己...

再谈机器学习中的归一化方法(Normalization Method)

转自 http://blog.csdn.net/zbc1090549839/article/details/44103801 min-max, z-score 等 ======...
  • lightty
  • lightty
  • 2016年08月21日 14:56
  • 815
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Method方法学习
举报原因:
原因补充:

(最多只允许输入30个字)