• SpringBoot学习笔记(持续更新)


    一、通过反射调用Class类的公有方法和私有方法

    问:如果一个类中的方法是私有方法,有办法能调用吗?

    答:反射。

    实例:

    添加一个Order类:里面有两个public 方法和一个private方法

     1 package com;
     2 
     3 public class Order {
     4 
     5     public void getOrder() {
     6         System.out.println("this is getorder Method");
     7     }
     8 
     9     public void getOrderInfo(String orderId) {
    10         System.out.println("this is getOrderInfo,the orderid is:" + orderId);
    11     }
    12 
    13 
    14     private void getOrderByName(String name) {
    15         System.out.println("this is getorderbyname:" + name);
    16     }
    17 }

    通过反射调用测试,测试代码:

    package com;
    
    import java.lang.reflect.Method;
    
    public class Main {
        public static void main(String[] args) throws Exception {
    
            Class clazzOrder = Class.forName("com.Order");
            Object objOrder = clazzOrder.newInstance();
    
            Method getOrder = clazzOrder.getDeclaredMethod("getOrder", null);
            getOrder.setAccessible(true);
            System.out.println("执行方法getOrder");
            getOrder.invoke(objOrder, null);
    
            Method getOrderInfo = clazzOrder.getDeclaredMethod("getOrderInfo", String.class);
            getOrderInfo.setAccessible(true);
            System.out.println("执行方法getOrderInfo");
            getOrderInfo.invoke(objOrder, "123");
    
            Method getOrderByName = clazzOrder.getDeclaredMethod("getOrderByName", String.class);
            getOrderByName.setAccessible(true);
            System.out.println("执行方法getOrderByName");
            getOrderByName.invoke(objOrder, "你好");
            
        }
    }

    运行结果:

     可以看到,不管是public方法还是private方法都能访问。

    二、访问配置文件xxx.properties

    添加一个person.properties文件,并设置一个key-value,例如:

    访问测试代码(方式一):

            Properties ps = new Properties();
            ClassLoader classLoader = Main.class.getClassLoader();
            //配置文件
            InputStream resourceAsStream = classLoader.getResourceAsStream("person.properties");
            //加载
            ps.load(resourceAsStream);
            //获取配置文件属性
            String user = ps.getProperty("user");
            System.out.println("user:" + user);

    方式二:

            Properties ps = new Properties();
            FileInputStream fileInputStream=new FileInputStream("src\\person.properties");
            ps.load(fileInputStream);
            //获取配置文件属性
            String user = ps.getProperty("user");
            System.out.println("user:" + user);

    结果,成功读取配置文件:

  • 相关阅读:
    The Snail
    Oil Deposits
    杭电3784(继续xxx定律)
    poj 2395 Out of Hay
    poj 2485 Highways(简单题)
    poj 2560 || 杭电1162
    Rescue
    “中国芯”能抗衡英特尔吗?
    2013,中国计算巨头放眼国际市场
    123063天两度瘫痪:为啥不在淘宝上卖火车票?
  • 原文地址:https://www.cnblogs.com/skyfreedom/p/15888331.html
Copyright © 2020-2023  润新知