码迷,mamicode.com
首页 > 编程语言 > 详细

Java -- 反射机制

时间:2018-07-30 18:00:28      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:book   ide   family   lan   getc   test   etc   实例化   构造方法   

实例化对象的两种形式:

1)通过关键字new

2)通过反射机制完成

package test;

//Book类
class Book {
    private String title;
    private double  price;
    public void setPric(double price) {
        this.price = price;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    @Override
    public String toString() {
        return "图书名称:"+ title + " 价格:" + price;
    }
}

public class TestReflection {
    public static void main(String[] args) throws Exception {
        Class<?> cls = Class.forName("test.Book"); //包名.类名
        Book book = (Book) cls.newInstance();
        book.setTitle("Java");
        book.setPric(10.01);
        System.out.println(book.toString()); //图书名称:Java 价格:10.01
    }
}

 Q:如果类中没有提供无参构造方法,只提供了有参构造方法,则必须明确调用指定的构造方法才可以通过反射实例化对象

package test;

import java.lang.reflect.Constructor;

//Book类
class Book {
    private String title;
    private double  price;
    public Book(String title,double price){
        this.price = price;
        this.title = title;
    }
    
    
    @Override
    public String toString() {
        return "图书名称:"+ title + " 价格:" + price;
    }
}

public class TestReflection {
    public static void main(String[] args) throws Exception {
        Class<?> cls = Class.forName("test.Book");
        Constructor<?> cons = cls.getConstructor(String.class,double.class);
        Book book = (Book) cons.newInstance("Java",10.01);
        System.out.println(book.toString());                //图书名称:Java 价格:10.01
    }
}

 

Java -- 反射机制

标签:book   ide   family   lan   getc   test   etc   实例化   构造方法   

原文地址:https://www.cnblogs.com/wuyuwuyueping/p/9391636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!