zoukankan      html  css  js  c++  java
  • JAVA的Class类

    一、Class的概述:Class对象是存储在heap区的

        获取Class类:

    1、类.class

    2、对象.getClass()

    3、Class.forName("java.lang.String")

    二、Class类的方法:

    1、Class.getResource()

          App.class.getResource("")取的是当前目录的资源

    App.class.getResource("/")取的是classes目录下的资源

     

            String path = Main.class.getResource("/config.properties").getPath();
            String path2 = Main.class.getResource("/config.properties").toURI().getPath();

     

    2、Class.getResourceAsStream()

    App.class.getResourceAsStream("")取的是当前目录的资源

    App.class.getResourceAsStream("/")取的是classes目录下的资源

    3、Class.getClassLoader().getResource()

    App.class.getClassLoader().getResource("")取的是classes目录下的资源

    App.class.getClassLoader().getResource("/")取的是引导类加载器下面的资源。所以为null

    Constructor:

    1、newInstance根据反射创建类的实例的方法

    package org.eclipse.winery.repository;
    
    import java.lang.reflect.Constructor;
    import java.net.URISyntaxException;
    
    public class Main2 {
    
        public static void main(String[] args) throws URISyntaxException, Exception {
            Constructor<Obj> constructor = builder(Obj.class);
            Obj obj = constructor.newInstance("myname", 33333);
            System.out.println(obj);
    
        }
    
        public static <T> Constructor<T> builder(Class<T> clazz) throws NoSuchMethodException, SecurityException {
            Constructor<T> constructor = clazz.getConstructor(String.class, int.class);
            return constructor;
        }
    
        private static class Obj {
    
            public String name = "Soar up into the sky with one start!";
            public int id = 123456;
    
            public Obj(String name, int id) {
                super();
                this.name = name;
                this.id = id;
            }
    
            @Override
            public String toString() {
                return "Obj [name=" + name + ", id=" + id + "]";
            }
    
        }
    
    }
  • 相关阅读:
    解决SVN创建补丁乱码问题
    一款监控网络状态的好工具 Smokeping
    微软“2052”文件夹什么意思
    SVN目录大小写漏洞
    探索Emberjs——了解Emberjs
    第一次尝试三层架构<实现简单的增、删、查、改>
    站内搜索1之开篇介绍
    原生的几个javascript常用特效
    如果你喜欢上了一个程序员小伙>献给所有的程序员女友
    站内搜索3之Lucene.Net使用
  • 原文地址:https://www.cnblogs.com/erdanyang/p/10149205.html
Copyright © 2011-2022 走看看