精华内容
下载资源
问答
  • 公共静态void main(string[]参数){for (String a...}公共类自定义配置{公共静态void readconfig(字符串文件名){//从config.properties文件读取try {String File = filename;System.out.println ("ConfigFile :" + Fi...

    公共静态void main(string[]参数){

    for (String a : args) {

    System.out.println(a);

    }

    公共类自定义配置{

    公共静态void readconfig(字符串文件名){//从config.properties文件读取

    try {

    String File = filename;

    System.out.println ("ConfigFile :" + File);

    String result ="";

    Properties properties = new Properties();

    String propFileName = filename;

    InputStream inputStream = new FileInputStream(propFileName);

    }

    }

    我的问题是如何将"a"传递给customconfiguration类?

    那么,你的问题是什么?

    @他把这个问题放到了代码注释lolz中。

    您已经有一个参数propertiesFile。用它…

    正如其他用户指出的那样,使用propertiesFile属性可以使应用程序变得非常灵活,因为您只需要更改属性文件内容,应用程序就可以从中获得必要的信息。例如,如果属性文件中包含以下内容:

    myFileName=C:/gherkins

    typeOfMeat=Beef

    typeOfRisk=Very High

    您可以提取MyFileName属性并在类中的任何位置获取值"c:/gherkins"。如果您更改了属性文件中的值,那么您的类就不需要做任何事情,只需要获取新的信息-简单。如果您不清楚,请遵循以下步骤-http://cruncify.com/java-properties-file-how-to-read-config-properties-values-in-java/

    可选地:

    您可以在main方法中使用String[] args来传递您感兴趣的文件名。你可以在其他任何地方使用它。args[0]始终是正在运行的类文件的路径,args[1]、args[2]等将是提供给类应用程序的额外参数。在您的案例中,您希望通过执行String myFileName = args[1];提取文件名,并在其他地方使用myFileName。

    p.s.在代码中,文件名路径是C://..。你确定这个//是正确的吗?你可能想让C:\\my_file_name转义反斜杠?还是只用一个斜杠?

    展开全文
  • * @description 两个泛型的 */ class Person<T1,T2> { } /** * 继承的时候,泛型被显式地指定了Integer, Boolean,所以能够被通过反射获取 */ class Student extends Person<Integer,
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    
    /**
     * @author 长得太帅,要好好反省!
     * @description 两个泛型的类
     */
    class Person<T1,T2> {
    }
    
    /**
     * 继承的时候,泛型被显式地指定了Integer, Boolean,所以能够被通过反射获取
     */
    class Student extends Person<Integer, Boolean> {
    
        public static void main(String[] args) {
    
            Student student = new Student();
            Class clazz = student.getClass();
            //getSuperclass()获得该类的父类
            System.out.println(clazz.getSuperclass());
    
            /**
             * getGenericSuperclass()获得带有泛型的父类
             * Type是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
             */
            Type type = clazz.getGenericSuperclass();
            System.out.println(type);
    
            //ParameterizedType参数化类型,即泛型
            ParameterizedType p = (ParameterizedType)type;
            //getActualTypeArguments获取参数化类型的数组,泛型可能有多个
            Class c1 = (Class)p.getActualTypeArguments()[0];
            System.out.println(c1);
            Class c2 = (Class)p.getActualTypeArguments()[1];
            System.out.println(c2);
        }
    }
    
    展开全文
  • java 获取实体对象属性值的方法

    千次阅读 2021-02-26 08:56:29
    java中我们要获得实体对象的属性,一般情况是将实体中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体对象的属性的时候先把对象new出来,再用变量名.get()的方法得到,如果想给某个属性赋值...

    在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到,如果想给某个属性赋值则用变量名.set()的方法赋值。

    第一步,生成一个属性类:

    public class Student {

    //编号

    private int id;

    //姓名

    private String name;

    //年龄

    private int age;

    /**

    * 有参构造,可以通过生成一个Student类型的对象的时候直接赋值

    * @param id

    * @param name

    * @param age

    */

    public Student(int id, String name, int age) {

    this.id = id;

    this.name = name;

    this.age = age;

    }

    /**

    * 无参构造

    */

    public Student(){

    }

    public int getId() {

    return id;

    }

    public void setId(int id) {

    this.id = id;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    }

    第二步:在其他类里通过生成一个Student类的对象来调用:

    //通过生成一个对象并用set方法赋值,get得到

    Student student = new Student();

    student.setId(1);

    student.setName("");

    student.setAge(18);

    //通过有参构造来赋值

    Student student1 = new Student(student.getId(),student.getName(),student.getAge());

    这里首先是给变量student赋值,然后又通过set方法拿到student的内部的各个属性值又通过有参构造的方式赋值给了student1。

    总结起来就是这样给实体类对象里的属性赋值或者得到实体类对象里的属性值。希望对大家有所帮助。

    另附一段没有单设属性类直接在一个类中赋值与获取的代码,刚入门的朋友可以看看,自己感觉有点麻烦不如单设属性类方便,大家自我斟酌吧。

    public class TestInstance {

    public class Product{

    public String name;

    public string age;

    public int count;

    public int number;

    }

    public static void main(String[] args) throws NoSuchMethodException,

    SecurityException, IllegalAccessException,

    IllegalArgumentException, InvocationTargetException {

    // TODO Auto-generated method stub

    Product model = new Product("sss", "11", 3, 4);

    Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组

    // 遍历所有属性

    for (int j = 0; j < field.length; j++) {

    String name = field[j].getName();

    name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法

    String type = field[j].getGenericType().toString(); // 获取属性的类型

    if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名

    Method m = model.getClass().getMethod("get" + name);

    String value = (String) m.invoke(model); // 调用getter方法获取属性值

    if (value == null) {

    m = model.getClass().getMethod("set" + name, String.class);

    m.invoke(model, "");

    }else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.lang.Integer")||type.equals("int")) {

    Method m = model.getClass().getMethod("get" + name);

    Integer value = (Integer) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Integer.class);

    m.invoke(model, 0);

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.lang.Boolean")||type.equals("boolean")) {

    Method m = model.getClass().getMethod("get" + name);

    Boolean value = (Boolean) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Boolean.class);

    m.invoke(model, false);

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("class java.util.Date")) {

    Method m = model.getClass().getMethod("get" + name);

    Date value = (Date) m.invoke(model);

    if (value == null) {

    m = model.getClass().getMethod("set" + name, Date.class);

    m.invoke(model, new Date());

    }

    else {

    System.out.println(value);

    }

    }

    if (type.equals("double")) {

    Method m = model.getClass().getMethod("get" + name);

    double value = (double) m.invoke(model);

    System.out.println(value);

    }

    }

    }

    }

    展开全文
  • JAVA参数设置

    千次阅读 2020-02-18 15:02:54
    Java启动参数共分为三; 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;...

    Java启动参数

    Java启动参数共分为三类;
    其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
    其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
    其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;

    Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令%JAVA_HOME%\bin\java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解。

    一、         查看参数列表:
    虚拟机参数分为基本和扩展两类,在命令行中输入%JAVA_HOME%\bin\java 就可得到基本参数列表,在命令行输入%JAVA_HOME%\bin\java –X 就可得到扩展参数列表(X:Extent扩展)
    二、         基本参数说明:
    1.     -client,-server
    这两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。相反,server模式启动比client慢,但可获得更高的运行性能
    在 windows上,缺省的虚拟机类型为client模式,如果要使用 server模式,就需要在启动虚拟机时加-server参数,以获得更高性能,对服务器端应用,推荐采用server模式,尤其是多个CPU的系统。在 Linux,Solaris上缺省采用server模式。
    2.     -hotspot
    含义与client相同,jdk1.4以前使用的参数,jdk1.4开始不再使用,代之以client。
    3.     -classpath,-cp

    cp就是classpath的首字母
    虚拟机在运行一个类时,需要将其装入内存,虚拟机搜索类的方式和顺序如下:
    Bootstrap classes,Extension classes,User classes。
    Bootstrap 中的路径是虚拟机自带的jar或zip文件,虚拟机首先搜索这些包文件,用System.getProperty("sun.boot.class.path")可得到虚拟机搜索的包名。
    Extension是位于jre"lib"ext目录下的jar文件,虚拟机在搜索完Bootstrap后就搜索该目录下的jar文件。用System. getProperty("java.ext.dirs”)可得到虚拟机使用Extension搜索路径。
    User classes搜索顺序为当前目录环境变量 CLASSPATH、-classpath
    4.     -classpath
    告知虚拟机搜索目录名、jar文档名、zip文档名,之间用分号;分隔。
    例如当你自己开发了公共类并包装成一个common.jar包,在使用 common.jar中的类时,就需要用-classpath common.jar 告诉虚拟机从common.jar中查找该类,否则虚拟机就会抛出java.lang.NoClassDefFoundError异常,表明未找到类定义。
    在运行时可用System.getProperty(“java.class.path”)得到虚拟机查找类的路径。

    使用-classpath后虚拟机将不再使用CLASSPATH中的类搜索路径,如果-classpath和CLASSPATH都没有设置,则虚拟机使用当前路径(.)作为类搜索路径。
    推荐使用-classpath来定义虚拟机要搜索的类路径,而不要使用环境变量 CLASSPATH的搜索路径,以减少多个项目同时使用CLASSPATH时存在的潜在冲突。例如应用1要使用a1.0.jar中的类G,应用2要使用 a2.0.jar中的类G,a2.0.jar是a1.0.jar的升级包,当a1.0.jar,a2.0.jar都在CLASSPATH中,虚拟机搜索到第一个包中的类G时就停止搜索,如果应用1应用2的虚拟机都从CLASSPATH中搜索,就会有一个应用得不到正确版本的类G。
    5.     -D<propertyName>=value
    在虚拟机的系统属性中设置属性名/值对,运行在此虚拟机之上的应用程序可用System.getProperty(“propertyName”)得到value的值。
    如果value中有空格,则需要用双引号将该值括起来,如-Dname=”space string”。
    该参数通常用于设置系统级全局变量值,如配置文件路径,应为该属性在程序中任何地方都可访问。

    6.    -verbose[:class|gc|jni]
    在输出设备上显示虚拟机运行信息。
    verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下:
    [Loaded java.io.FilePermission$1 from shared objects file]
    当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。
    7.     -verbose:gc
    在虚拟机发生内存回收时在输出设备显示信息,格式如下:
    [Full GC 268K->168K(1984K), 0.0187390 secs]
    该参数用来监视虚拟机内存回收的情况。
    8.     -verbose:jni
    在虚拟机调用native方法时输出设备显示信息,格式如下:
    [Dynamic-linking native method HelloNative.sum ... JNI]
    该参数用来监视虚拟机调用本地方法的情况,在发生jni错误时可为诊断提供便利。
    9.     -version
    显示可运行的虚拟机版本信息然后退出。一台机器上装有不同版本的JDK时
    10.-showversion
    显示版本信息以及帮助信息。 内容来自dedecms
    11.-ea[:<packagename>...|:<classname>]
    12.-enableassertions[:<packagename>...|:<classname>]
    从JDK1.4开始,java可支持断言机制,用于诊断运行时问题。通常在测试阶段使断言有效,在正式运行时不需要运行断言。断言后的表达式的值是一个逻辑值,为true时断言不运行,为false时断言运行,抛出java.lang.AssertionError错误。
    上述参数就用来设置虚拟机是否启动断言机制,缺省时虚拟机关闭断言机制,用-ea 可打开断言机制,不加<packagename>和classname时运行所有包和类中的断言,如果希望只运行某些包或类中的断言,可将包名或类名加到-ea之后。例如要启动包com.foo.util中的断言,可用命令 –ea:com.foo.util 。
    13.-da[:<packagename>...|:<classname>]
    14.-disableassertions[:<packagename>...|:<classname>]
    用来设置虚拟机关闭断言处理,packagename和classname的使用方法和-ea相同。
    15.-esa | -enablesystemassertions
    设置虚拟机显示系统类的断言。
    16.-dsa | -disablesystemassertions
    设置虚拟机关闭系统类的断言。 dedecms.com
    17.-agentlib:<libname>[=<options>]
    该参数是JDK5新引入的,用于虚拟机装载本地代理库。
    Libname 为本地代理库文件名,虚拟机的搜索路径为环境变量PATH中的路径,options为传给本地库启动时的参数,多个参数之间用逗号分隔。在Windows 平台上虚拟机搜索本地库名为libname.dll的文件,在Unix上虚拟机搜索本地库名为libname.so的文件,搜索路径环境变量在不同系统上有所不同,Linux、SunOS、IRIX上为LD_LIBRARY_PATH,AIX上为LIBPATH,HP-UX上为SHLIB_PATH。
    例如可使用-agentlib:hprof来获取虚拟机的运行情况,包括CPU、内存、线程等的运行数据,并可输出到指定文件中,可用-agentlib:hprof=help来得到使用帮助列表。在jre"bin目录下可发现hprof.dll文件。
    18. -agentpath:<pathname>[=<options>]
    设置虚拟机按全路径装载本地库,不再搜索PATH中的路径。其他功能和agentlib相同。
    19.-javaagent:<jarpath>[=<options>]
    虚拟机启动时装入java语言设备代理。Jarpath文件中的mainfest 文件必须有Agent-Class属性。代理类要实现public static void premain(String agentArgs, Instrumentation inst)方法。当虚拟机初始化时,将按代理类的说明顺序调用premain方法。 copyright dedecms
    参见:java.lang.instrument
    三、         扩展参数说明
    1.     -Xmixed
    设置-client模式虚拟机对使用频率高的方式进行Just-In-Time编译和执行,对其他方法使用解释方式执行。该方式是虚拟机缺省模式。
    2.     -Xint
    设置-client模式下运行的虚拟机以解释方式执行类的字节码,不将字节码编译为本机码。
    3.     -Xbootclasspath:path
    4.     -Xbootclasspath/a:path
    5.     -Xbootclasspath/p:path
    改变虚拟机装载缺省系统运行包rt.jar而从-Xbootclasspath中设定的搜索路径中装载系统运行类。除非你自己能写一个运行时,否则不会用到该参数。
    /a:将在缺省搜索路径后加上path 中的搜索路径。
    /p:在缺省搜索路径前先搜索path中的搜索路径。
    6.     -Xnoclassgc
    关闭虚拟机对class的垃圾回收功能。
    7.     -Xincgc
    启动增量垃圾收集器,缺省是关闭的。增量垃圾收集器能减少偶然发生的长时间的垃圾回收造成的暂停时间。但增量垃圾收集器和应用程序并发执行,因此会占用部分CPU在应用程序上的功能。
    8.     -Xloggc:<file>
    将虚拟机每次垃圾回收的信息写到日志文件中,文件名由file指定,文件格式是平文件,内容和-verbose:gc输出内容相同。
    9.     -Xbatch
    虚拟机的缺省运行方式是在后台编译类代码,然后在前台执行代码,使用-Xbatch参数将关闭虚拟机后台编译,在前台编译完成后再执行。
    10.-Xms<size>
    设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为1024的整数倍并且要大于1MB,可用k(K)或m(M)为单位来设置较大的内存数。初始堆大小为2MB。
    例如:-Xms6400K,-Xms256M
    11.-Xmx<size>
    设置虚拟机内存堆的最大可用大小,缺省单位为字节。该值必须为1024整数倍,并且要大于2MB。可用k(K)或m(M)为单位来设置较大的内存数。缺省堆最大值为64MB。
    例如:-Xmx81920K,-Xmx80M
    当应用程序申请了大内存运行时虚拟机抛出java.lang.OutOfMemoryError: Java heap space错误,就需要使用-Xmx设媒洗蟮目捎媚诖娑选?BR>
    12.-Xss<size>
    设置线程栈的大小,缺省单位为字节。与-Xmx类似,也可用K或M来设置较大的值。通常操作系统分配给线程栈的缺省大小为1MB。
    另外也可在java中创建线程对象时设置栈的大小,构造函数原型为Thread(ThreadGroup group, Runnable target, String name, long stackSize)。
    13.-Xprof
    输出CPU运行时的诊断信息。
    14.-Xfuture
    对类文件进行严格格式检查,以保证类代码符合类代码规范。为保持向后兼容,虚拟机缺省不进行严格的格式检查。
    15.-Xrs
    减少虚拟机中操作系统的信号(singals)的使用。该参数通常用在虚拟机以后台服务方式运行时使用(如Servlet)。
    16.-Xcheck:jni

    一、运行class文件
    执行带main方法的class文件,命令行为:
    java <CLASS文件名>
    注意:CLASS文件名不要带文件后缀.class
    例如:
    java Test
    如果执行的class文件是带包的,即在类文件中使用了:
    package <包名>
    那应该在包的基路径下执行,命令行为:
    java <包名>.CLASS文件名
    例如:
    PackageTest.java中,其包名为:com.ee2ee.test,对应的语句为:
    package com.ee2ee.test;
    PackageTest.java及编译后的class文件PackageTest.class的存放目录如下:
    classes
      |__com
          |__ee2ee
               |__test
                    |__PackageTest.java
                    |__PackageTest.class

    要运行PackageTest.class,应在classes目录下执行:
    java com.ee2ee.test.PackageTest 
    二、运行jar文件中的class
    原理和运行class文件一样,只需加上参数-cp <jar文件名>即可。
    例如:执行test.jar中的类com.ee2ee.test.PackageTest,命令行如下:
    java -cp test.jar com.ee2ee.test.PackageTest 
    三、显示jdk版本信息
    当一台机器上有多个jdk版本时,需要知道当前使用的是那个版本的jdk,使用参数-version即可知道其版本,命令行为:
    java -version 
    四、增加虚拟机可以使用的最大内存
    java虚拟机可使用的最大内存是有限制的,缺省值通常为64MB或128MB。
    如果一个应用程序为了提高性能而把数据加载内存中而占用较大的内存,比如超过了默认的最大值128MB,需要加大java虚拟机可使用的最大内存,否则会出现Out of Memory(系统内存不足)的异常。启动java时,需要使用如下两个参数:
    -Xms java虚拟机初始化时使用的内存大小
    -Xmx java虚拟机可以使用的最大内存
    以上两个参数中设置的size,可以带单位,例如:256m表示256MB
    举例说明:
    java -Xms128m -Xmx256m ...
    表示java虚拟机初始化时使用的内存为128MB,可使用的最大内存为256MB。
    对于tomcat,可以修改其脚本catalina.sh(unix平台)或catalina.bat(windows平台),设置变量JAVA_OPTS即可,例如:
    JAVA_OPTS='-Xms128m -Xmx256m' 

    在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。

    其次,用java -X 命令查看JVM的配置说明:

    运行后如下结果,这些就是配置JVM参数的秘密武器,这些信息都是英文的,为了方便阅读,我根据自己的理解翻译成中文了(不准确的地方还请各位博友斧正)

    -----------------------------------------------------------------------

    D:\j2sdk15\bin>java -X

        -Xmixed           mixed mode execution (default)

        -Xint             interpreted mode execution only

        -Xbootclasspath:<directories and zip/jar files separated by ;>

                          set search path for bootstrap classes and resources

        -Xbootclasspath/a:<directories and zip/jar files separated by ;>

                          append to end of bootstrap class path

        -Xbootclasspath/p:<directories and zip/jar files separated by ;>

                          prepend in front of bootstrap class path

        -Xnoclassgc       disable class garbage collection

        -Xincgc           enable incremental garbage collection

        -Xloggc:<file>    log GC status to a file with time stamps

        -Xbatch           disable background compilation

        -Xms<size>        set initial Java heap size

        -Xmx<size>        set maximum Java heap size

        -Xss<size>        set java thread stack size

        -Xprof            output cpu profiling data

        -Xfuture          enable strictest checks, anticipating future default

        -Xrs              reduce use of OS signals by Java/VM (see documentation)

        -Xcheck:jni       perform. additional checks for JNI functions

        -Xshare:off       do not attempt to use shared class data

        -Xshare:auto      use shared class data if possible (default)

        -Xshare:on        require using shared class data, otherwise fail.

     

    The -X options are non-standard and subject to change without notice.

    -----------------------------------------------------------------------

     

    JVM配置参数中文说明:

    -----------------------------------------------------------------------

    1、-Xmixed           mixed mode execution (default)

     混合模式执行

    2、-Xint             interpreted mode execution only

     解释模式执行

    3、-Xbootclasspath:<directories and zip/jar files separated by ;>

          set search path for bootstrap classes and resources

     设置zip/jar资源或者类(.class文件)存放目录路径

    3、-Xbootclasspath/a:<directories and zip/jar files separated by ;>

          append to end of bootstrap class path

     追加zip/jar资源或者类(.class文件)存放目录路径

    4、-Xbootclasspath/p:<directories and zip/jar files separated by ;>

          prepend in front of bootstrap class path

     预先加载zip/jar资源或者类(.class文件)存放目录路径

    5、-Xnoclassgc       disable class garbage collection

     关闭类垃圾回收功能

    6、-Xincgc           enable incremental garbage collection

     开启类的垃圾回收功能

    7、-Xloggc:<file>    log GC status to a file with time stamps

     记录垃圾回日志到一个文件。

    8、-Xbatch           disable background compilation

     关闭后台编译

    9、-Xms<size>        set initial Java heap size

     设置JVM初始化堆内存大小

    10、-Xmx<size>        set maximum Java heap size

     设置JVM最大的堆内存大小

    11、-Xss<size>        set java thread stack size

     设置JVM栈内存大小

    12、-Xprof            output cpu profiling data

     输入CPU概要表数据

    13、-Xfuture          enable strictest checks, anticipating future default

     执行严格的代码检查,预测可能出现的情况

    14、-Xrs              reduce use of OS signals by Java/VM (see documentation)

     通过JVM还原操作系统信号

    15、-Xcheck:jni       perform. additional checks for JNI functions

     对JNI函数执行检查

    16、-Xshare:off       do not attempt to use shared class data

     尽可能不去使用共享类的数据

    17、-Xshare:auto      use shared class data if possible (default)

     尽可能的使用共享类的数据

    18、-Xshare:on       require using shared class data, otherwise fail.

     尽可能的使用共享类的数据,否则运行失败

    The -X options are non-standard and subject to change without notice.

    -----------------------------------------------------------------------

    怎么用这这些参数呢?其实所有的命令行都是这么一用,下面我就给出一个最简单的HelloWorl的例子来演示这个参数的用法,非常的简单。

    HelloWorld.java

    -----------------------------------------------

    public class  HelloWorld

    {

     public static void main(String[] args)

     {

      System.out.println("Hello World!");

     }

    }

    编译并运行:

    D:\j2sdk15\bin>javac HelloWorld.java

    D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld

    Hello World!

    展开全文
  • JavaJava反射调用可变参数的方法

    千次阅读 2020-08-28 23:00:46
    因为要Java反射调用可变参数的方法,所以参考了这篇文章:https://www.cnblogs.com/huqingchen/p/5979936.html 但是测试过程中,有一点我不明白,就是反射调用可变参数的方法时,为什么一定要保证传入的参数数组长度...
  • java自定义注解及获取注解参数

    万次阅读 2019-02-09 21:20:05
    要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。 元注解:  元注解的作用就是负责注解其他注解。Java5.0定义了4...
  • 创建的SystemConstants :(红色部分为核心代码) package cn.test.util; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.Properties; ...
  • 在实际开发中,我们需要通过一个方法根据传入的参数实现一些逻辑,这里我拿我在实际项目中的出现的代码冗余为例。 如图: 只拿这2个方法为例,我除了传递的不一样外,里面的实现逻辑是一模一样的,这种因为...
  • Java反射获取私有构造函数、属性、方法
  • #1 热门回答(101 赞)首先检索的字段属性,然后可以检索该值。如果你知道类型,则可以使用其中一个带null的get方法(仅对于静态字段,实际上对于静态字段,将完全忽略传递给get方法的参数)。否则,你可以使用getTy.....
  • 我正在做一个关于Java反思的学校作业 . 详情如下:编写一个控制台程序,询问用户类名,加载该并创建它的实例 . 我们假设该有一个没有任何参数的构造函数 . 然后,程序打印出创建的对象的公共变量的名称和值,...
  • Java反射获取实际泛型类型参数

    千次阅读 2016-03-14 10:53:49
    我们知道,一个Java主要包括两个元素,即是成员变量和成员方法。成员变量包括实例成员变量和静态成员变量,而成员方法也有实例成员方法和静态成员方法,构造方法则是特殊的成员方法。而反射的主要作用是能够在...
  • import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.s...
  • Java获取类或接口上的泛型类型T方法

    万次阅读 2019-09-19 16:03:41
    前言 实际开发中,泛型使用到处可见。有时候定义接口时,经常使用泛型,而不是指定具体对象,...本篇讲述如何获取类或接口的泛型类型(参数化类型ParameterizedType)。 实例 1.定义泛型接口 public interface Res...
  • Java 命令行运行参数大全

    千次阅读 2019-01-08 04:20:25
    Java在运行已编译完成的时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟机参数JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机...
  • java基础值java 运行参数,及jvm调优

    千次阅读 2021-01-06 00:33:08
    java启动参数共分为三 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; ...
  • get方法: 从实体对象中获取属性值 构造方法所带参数不同,则创建的对象“长相”也不同。 一个实体可以有很多个,“长相”不同的对象。 package com.auko.test.entity; /** * 实体Student,包含属性stu_name...
  • 对于具有泛型参数T的,您无法执行此操作,因为您没有T的类型信息,因为JVM会删除类型信息 . 因此这样的代码不起作用:class Storage {val snapshot: Snapshot? = ...fun retrieveSomething(): T? {return snapshot...
  • 首先知道:Class clzz=getClass().getSuperclass();...而Type是JAVA语言中所有类型的公共父接口,Class是其直接实现获取父类泛型类型:Type type=getClass().getGenericSuperclass();ParameterizedType pt =...
  • 什么不说先上代码,代码上有具体的注释,在此以实体对象为示意 1、实体代码 首先是实体代码,仅用一个实体演示,读者可自行增加实体,我实体用的是lombok来自行创建get、set方法和有参无参方法 @Data ...
  • 在这里我们想一下我们在编写java的时候,先写java源文件——>字节码文件(class文件)——>然后就可以通过 对象.方法调用具体的方法,反射就是吧这个动作的反过来就可以理解为反射。 对象.方法——>字节码...
  • java 提取公共方法

    千次阅读 2016-12-24 09:28:33
    提取公共方法:(所有的...一、公共方法将特有的东西提取为需要传入的参数。 例: public static boolean isEmpty(String s)throws Exception{  if(s != null && !s.equals("")){  return false;  }  return tru
  • 常用的Java工具——十六种

    千次阅读 2021-02-27 08:52:03
    常用的Java工具——十六种在Java中,工具定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具。以下工具、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。...
  • 再创建serviceImpl来实现接口了,直接写在service中: 1.3、创建Aspect,增加业务逻辑 1.4、创建Spring配置 主要做的是:指定包扫描路径 1.5、测试 输出: 二、获取自定义注解的参数 2.1、创建带属性的自定义注解 ...
  • Java启动参数、调优及分析

    千次阅读 2019-05-29 10:40:51
    java启动参数共分为三; 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;...
  • 理解反射 想要理解“反射”,就必须明白“正射”,他们最大的区别在于你是否知道其中的属性和方法,如果知道就是正射;...总结:动态获取信息以及动态调用对象方法的功能称为java语言的反射机制 所谓的"正射" 开...
  • java如何获取系统当前时间爪哇如何获取系统当前时间,爪哇岛获取系统当前时间的方法:获得当前时间和当前时间前30秒时间,代码为【简单...java获取系统当前时间的方法:导入组织。JUnit。测试;导入Java。文字。Simp...
  • 现有几个,构造函数的参数都是一样的,就是创建的实例对象不一样。具体如下: class StringFunction{ String id; public StringFunction(){} public StringFunction(String id){ this.id=id; System.out....
  • Java Field

    2021-02-26 09:55:01
    Reflection APIJava FieldField是一个,位于Java.lang.reflect包下,在Java反射中Field用于获取某个的属性或该属性的属性值。获取Field对象1. Class.getDeclaredField(String name);返回一个 Field 对象,该...
  • java8新特性 lambda Stream map(函数式编程)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,536
精华内容 50,214
关键字:

java获取公共类的参数

java 订阅
友情链接: CIRCLE_1.PE.rar