精华内容
下载资源
问答
  • 方案一: 采用reflections 框架(此框架依赖com.google.guava)2、项目依赖org.reflectionsreflections0.9.11 com.google.guava guava21.03、实现代码//入参 要扫描的名Reflections f = new Reflections(...

    方案一: 采用reflections 框架(此框架依赖com.google.guava)

    2、项目依赖

    org.reflections

    reflections

    0.9.11

    com.google.guavaguava

    21.0

    3、实现代码

    //入参 要扫描的包名

    Reflections f = new Reflections("com.ggband.netty.execute.command");

    //入参 目标注解类

    Set> set = f.getTypesAnnotatedWith(Cmd.class);

    方案二: 采用ClassLoader扫描

    1、实现代码

    package com.ggband.netty;

    import java.io.File;

    import java.io.IOException;

    import java.lang.annotation.Annotation;

    import java.net.JarURLConnection;

    import java.net.URL;

    import java.net.URLDecoder;

    import java.util.Enumeration;

    import java.util.HashSet;

    import java.util.Set;

    import java.util.jar.JarEntry;

    import java.util.jar.JarFile;

    public class Scanner {

    /**

    * 从包package中获取所有的Class

    *

    * @param packageName

    * @return

    */

    public Set> getClasses(String packageName) throws Exception {

    // 第一个class类的集合

    //List> classes = new ArrayList>();

    Set> classes = new HashSet<>();

    // 是否循环迭代

    boolean recursive = true;

    // 获取包的名字 并进行替换

    String packageDirName = packageName.replace('.', '/');

    // 定义一个枚举的集合 并进行循环来处理这个目录下的things

    Enumeration dirs;

    try {

    dirs = Thread.currentThread().getContextClassLoader().getResources(packageDirName);

    // 循环迭代下去

    while (dirs.hasMoreElements()) {

    // 获取下一个元素

    URL url = dirs.nextElement();

    // 得到协议的名称

    String protocol = url.getProtocol();

    // 如果是以文件的形式保存在服务器上

    if ("file".equals(protocol)) {

    // 获取包的物理路径

    String filePath = URLDecoder.decode(url.getFile(), "UTF-8");

    // 以文件的方式扫描整个包下的文件 并添加到集合中

    addClass(classes, filePath, packageName);

    } else if ("jar".equals(protocol)) {

    // 如果是jar包文件

    // 定义一个JarFile

    JarFile jar;

    try {

    // 获取jar

    jar = ((JarURLConnection) url.openConnection()).getJarFile();

    // 从此jar包 得到一个枚举类

    Enumeration entries = jar.entries();

    // 同样的进行循环迭代

    while (entries.hasMoreElements()) {

    // 获取jar里的一个实体 可以是目录 和一些jar包里的其他文件 如META-INF等文件

    JarEntry entry = entries.nextElement();

    String name = entry.getName();

    // 如果是以/开头的

    if (name.charAt(0) == '/') {

    // 获取后面的字符串

    name = name.substring(1);

    }

    // 如果前半部分和定义的包名相同

    if (name.startsWith(packageDirName)) {

    int idx = name.lastIndexOf('/');

    // 如果以"/"结尾 是一个包

    if (idx != -1) {

    // 获取包名 把"/"替换成"."

    packageName = name.substring(0, idx).replace('/', '.');

    }

    // 如果可以迭代下去 并且是一个包

    if ((idx != -1) || recursive) {

    // 如果是一个.class文件 而且不是目录

    if (name.endsWith(".class") && !entry.isDirectory()) {

    // 去掉后面的".class" 获取真正的类名

    String className = name.substring(packageName.length() + 1, name.length() - 6);

    try {

    // 添加到classes

    classes.add(Class.forName(packageName + '.' + className));

    } catch (ClassNotFoundException e) {

    e.printStackTrace();

    }

    }

    }

    }

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    return classes;

    }

    public void addClass(Set> classes, String filePath, String packageName) throws Exception {

    File[] files = new File(filePath).listFiles(file -> (file.isFile() && file.getName().endsWith(".class")) || file.isDirectory());

    assert files != null;

    for (File file : files) {

    String fileName = file.getName();

    if (file.isFile()) {

    String classsName = fileName.substring(0, fileName.lastIndexOf("."));

    if (!packageName.isEmpty()) {

    classsName = packageName + "." + classsName;

    }

    doAddClass(classes, classsName);

    }

    }

    }

    public void doAddClass(Set> classes, final String classsName) throws Exception {

    ClassLoader classLoader = new ClassLoader() {

    @Override

    public Class> loadClass(String name) throws ClassNotFoundException {

    return super.loadClass(name);

    }

    };

    classes.add(classLoader.loadClass(classsName));

    }

    public Set> getAnnotationClasses(String packageName, Class

    //找用了annotationClass注解的类

    Set> controllers = new HashSet<>();

    Set> clsList = getClasses(packageName);

    if (clsList != null && clsList.size() > 0) {

    for (Class> cls : clsList) {

    if (cls.getAnnotation(annotationClass) != null) {

    controllers.add(cls);

    }

    }

    }

    return controllers;

    }

    }

    2、使用:

    Set> set = new Scanner().getAnnotationClasses("com.ggband.netty.execute.command", Cmd.class);

    扩充:现在就可以实现自己的业务了,比如 扫描com.ggband.netty.execute.command包下被Cmd注解的类 得到Cmd注解value和被注解类的实例

    Map beanContainer = new HashMap<>();

    try {

    //@1 采用reflections 框架(此框架依赖com.google.guava)

    // Reflections f = new Reflections("com.ggband.netty.execute.command");

    // Set> set = f.getTypesAnnotatedWith(Cmd.class);

    //@2 采用ClassLoader扫描

    Set> set = new Scanner().getAnnotationClasses("com.ggband.netty.execute.command", Cmd.class);

    for (Class> c : set) {

    Object bean = c.newInstance();

    Cmd annotation = c.getAnnotation(Cmd.class);

    beanContainer.put(Arrays.toString(annotation.value()), (Command) bean);

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 我有代码 private static class MyVisitor extends VoidVisitorAdapter { @...将显示对象//类名.但是如何获得它的类型? 例如代码System.out.println(“Hello world”); 应该输出 Type: java.io.PrintStream

    我有代码

    private static class MyVisitor extends VoidVisitorAdapter {

    @Override

    public void visit(MethodCallExpr exp, Object arg) {

    System.out.println("Scope: " + exp.getScope());

    System.out.println("Method: " + exp.getName());

    if(exp.getArgs() != null)

    for(Expression e : exp.getArgs()) {

    System.out.println("\tArgument: " + e.toString());

    }

    System.out.println();

    }

    }

    CompilationUnit cu = JavaParser.parse(new File("Test.java"));

    for(TypeDeclaration type : cu.getTypes()) {

    for(BodyDeclaration dec : type.getMembers()) {

    if(dec instanceof MethodDeclaration) {

    MethodDeclaration mdec = (MethodDeclaration) dec;

    BlockStmt block = mdec.getBody();

    for(Statement stmt : block.getStmts()) {

    MyVisitor visitor = new MyVisitor();

    s.accept(visitor, null);

    }

    }

    }

    }

    我有两个问题:

    >如何将Statement转换为Expression?我想查一下方法调用.我试图通过这种方式检查它们是不兼容的类型:if(stmt instanceof MethodCallExp)但是出错了.我输入了我现在使用的代码.这是执行检查的一种方法吗?

    > System.out.println(“Scope:”exp.getScope());将显示对象/包/包类名.但是如何获得它的类型?

    例如代码System.out.println(“Hello world”);

    应该输出

    Type: java.io.PrintStream

    展开全文
  • 方案一:采用reflections 框架(此框架依赖com.google.guava)2、项目依赖org.reflectionsreflections0.9.11 com.google.guava guava21.03、实现代码//入参 要扫描的名Reflections f = new Reflections(...

    方案一: 采用reflections 框架(此框架依赖com.google.guava)

    2、项目依赖

    org.reflections

    reflections

    0.9.11

    com.google.guavaguava

    21.0

    3、实现代码

    //入参 要扫描的包名

    Reflections f = new Reflections("com.ggband.netty.execute.command");

    //入参 目标注解类

    Set> set = f.getTypesAnnotatedWith(Cmd.class);

    方案二: 采用ClassLoader扫描

    1、实现代码

    package com.ggband.netty;

    import java.io.File;

    import java.io.IOException;

    import java.lang.annotation.Annotation;

    import java.net.JarURLConnection;

    import java.net.URL;

    import java.net.URLDecoder;

    import java.util.Enumeration;

    import java.util.HashSet;

    import java.util.Set;

    import java.util.jar.JarEntry;

    import java.util.jar.JarFile;

    public class Scanner {

    /**

    * 从包package中获取所有的Class

    *

    * @param packageName

    * @return

    */

    public Set> getClasses(String packageName) throws Exception {

    // 第一个class类的集合

    //List> classes = new ArrayList>();

    Set> classes = new HashSet<>();

    // 是否循环迭代

    boolean recursive = true;

    // 获取包的名字 并进行替换

    String packageDirName = packageName.replace('.', '/');

    // 定义一个枚举的集合 并进行循环来处理这个目录下的things

    Enumeration dirs;

    try {

    dirs = Thread.currentThread().getContextClassLoader().getResources(packageDirName);

    // 循环迭代下去

    while (dirs.hasMoreElements()) {

    // 获取下一个元素

    URL url = dirs.nextElement();

    // 得到协议的名称

    String protocol = url.getProtocol();

    // 如果是以文件的形式保存在服务器上

    if ("file".equals(protocol)) {

    // 获取包的物理路径

    String filePath = URLDecoder.decode(url.getFile(), "UTF-8");

    // 以文件的方式扫描整个包下的文件 并添加到集合中

    addClass(classes, filePath, packageName);

    } else if ("jar".equals(protocol)) {

    // 如果是jar包文件

    // 定义一个JarFile

    JarFile jar;

    try {

    // 获取jar

    jar = ((JarURLConnection) url.openConnection()).getJarFile();

    // 从此jar包 得到一个枚举类

    Enumeration entries = jar.entries();

    // 同样的进行循环迭代

    while (entries.hasMoreElements()) {

    // 获取jar里的一个实体 可以是目录 和一些jar包里的其他文件 如META-INF等文件

    JarEntry entry = entries.nextElement();

    String name = entry.getName();

    // 如果是以/开头的

    if (name.charAt(0) == '/') {

    // 获取后面的字符串

    name = name.substring(1);

    }

    // 如果前半部分和定义的包名相同

    if (name.startsWith(packageDirName)) {

    int idx = name.lastIndexOf('/');

    // 如果以"/"结尾 是一个包

    if (idx != -1) {

    // 获取包名 把"/"替换成"."

    packageName = name.substring(0, idx).replace('/', '.');

    }

    // 如果可以迭代下去 并且是一个包

    if ((idx != -1) || recursive) {

    // 如果是一个.class文件 而且不是目录

    if (name.endsWith(".class") && !entry.isDirectory()) {

    // 去掉后面的".class" 获取真正的类名

    String className = name.substring(packageName.length() + 1, name.length() - 6);

    try {

    // 添加到classes

    classes.add(Class.forName(packageName + '.' + className));

    } catch (ClassNotFoundException e) {

    e.printStackTrace();

    }

    }

    }

    }

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    return classes;

    }

    public void addClass(Set> classes, String filePath, String packageName) throws Exception {

    File[] files = new File(filePath).listFiles(file -> (file.isFile() && file.getName().endsWith(".class")) || file.isDirectory());

    assert files != null;

    for (File file : files) {

    String fileName = file.getName();

    if (file.isFile()) {

    String classsName = fileName.substring(0, fileName.lastIndexOf("."));

    if (!packageName.isEmpty()) {

    classsName = packageName + "." + classsName;

    }

    doAddClass(classes, classsName);

    }

    }

    }

    public void doAddClass(Set> classes, final String classsName) throws Exception {

    ClassLoader classLoader = new ClassLoader() {

    @Override

    public Class> loadClass(String name) throws ClassNotFoundException {

    return super.loadClass(name);

    }

    };

    classes.add(classLoader.loadClass(classsName));

    }

    public Set> getAnnotationClasses(String packageName, Class

    //找用了annotationClass注解的类

    Set> controllers = new HashSet<>();

    Set> clsList = getClasses(packageName);

    if (clsList != null && clsList.size() > 0) {

    for (Class> cls : clsList) {

    if (cls.getAnnotation(annotationClass) != null) {

    controllers.add(cls);

    }

    }

    }

    return controllers;

    }

    }

    2、使用:

    Set> set = new Scanner().getAnnotationClasses("com.ggband.netty.execute.command", Cmd.class);

    扩充:现在就可以实现自己的业务了,比如 扫描com.ggband.netty.execute.command包下被Cmd注解的类 得到Cmd注解value和被注解类的实例

    Map beanContainer = new HashMap<>();

    try {

    //@1 采用reflections 框架(此框架依赖com.google.guava)

    // Reflections f = new Reflections("com.ggband.netty.execute.command");

    // Set> set = f.getTypesAnnotatedWith(Cmd.class);

    //@2 采用ClassLoader扫描

    Set> set = new Scanner().getAnnotationClasses("com.ggband.netty.execute.command", Cmd.class);

    for (Class> c : set) {

    Object bean = c.newInstance();

    Cmd annotation = c.getAnnotation(Cmd.class);

    beanContainer.put(Arrays.toString(annotation.value()), (Command) bean);

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    标签:Set,java,String,包下,packageName,jar,注解,name

    来源: https://www.cnblogs.com/ggband/p/11668879.html

    展开全文
  • java获取java文件路径的四种方法

    千次阅读 2021-02-12 16:12:39
    java获取java文件路径的四种方法发布时间:2020-04-17 11:03:45来源:亿速云阅读:750作者:小新今天小编给大家分享的是java获取java文件路径的四种方法,很多人都不太了解,今天小编为了让大家更加了解获取java文件...

    java获取java文件路径的四种方法

    发布时间:2020-04-17 11:03:45

    来源:亿速云

    阅读:750

    作者:小新

    今天小编给大家分享的是java获取java文件路径的四种方法,很多人都不太了解,今天小编为了让大家更加了解获取java文件路径的方法,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。

    909e72bb4e724e6b75349d7c854c26d9.png

    java获取java文件的路径怎么写?

    1、java代码获取文件当前路径//利用System.getProperty()函数获取当前路径

    System.out.println(System.setProperty("user.dir", "c:users"));

    System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径

    //在类中取得类的绝对路径

    System.out.println(Class.class.getClass().getResource("/").getPath());

    System.out.println(Thread.currentThread().getContextClassLoader().getResource("./").getPath());

    System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath());//ClassPath的绝对URI路径

    System.out.println(Thread.currentThread().getContextClassLoader().getResource(".").getPath());//项目的绝对路径

    2、使用File提供的函数获取当前路径File directory = new File("");//设定为当前文件夹

    try{

    System.out.println(directory.getCanonicalPath());//获取标准的路径

    System.out.println(directory.getAbsolutePath());//获取绝对路径

    }catch(Exceptin e){

    }

    (1)注意:

    File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(“.”)和new File(“..”)两种路径有所区别。

    对于getCanonicalPath()函数,“.”就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹。

    对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径

    至于getPath()函数,得到的只是你在new File()时设定的路径。

    (2)如当前的路径为 C:/test :File directory = new File("abc");

    directory.getCanonicalPath();//得到的是C:/test/abc

    directory.getAbsolutePath();//得到的是C:/test/abc

    direcotry.getPath();//得到的是abc

    File directory = new File(".");

    directory.getCanonicalPath();//得到的是C:/test

    directory.getAbsolutePath();//得到的是C:/test/.

    direcotry.getPath(); //得到的是.

    File directory = new File("..");

    directory.getCanonicalPath(); //得到的是C:/

    directory.getAbsolutePath(); //得到的是C:/test/..

    direcotry.getPath(); //得到的是..

    (3) System.getProperty()参数大全java.version Java Runtime Environment version

    java.vendor Java Runtime Environment vendor

    java.vendor.url Java vendor URL

    java.home Java installation directory

    java.vm.specification.version Java Virtual Machine specification version

    java.vm.specification.vendor Java Virtual Machine specification vendor

    java.vm.specification.name Java Virtual Machine specification name

    java.vm.version Java Virtual Machine implementation version

    java.vm.vendor Java Virtual Machine implementation vendor

    java.vm.name Java Virtual Machine implementation name

    java.specification.version Java Runtime Environment specification version

    java.specification.vendor Java Runtime Environment specification vendor

    java.specification.name Java Runtime Environment specification name

    java.class.version Java class format version number

    java.class.path Java class path

    java.library.path List of paths to search when loading libraries

    java.io.tmpdir Default temp file path

    java.compiler Name of JIT compiler to use

    java.ext.dirs Path of extension directory or directories

    os.name Operating system name

    os.arch Operating system architecture

    os.version Operating system version

    file.separator File separator ("/" on UNIX)

    path.separator Path separator (":" on UNIX)

    line.separator Line separator ("/n" on UNIX)

    user.name User’s account name

    user.home User’s home directory

    user.dir User’s current working directory

    3、在jsp中取得路径

    (1)以项目名TEST为例//得到包含工程名(工程名为TEST)的当前页面全路径:request.getRequestURI()

    结果:/TEST/test.jsp

    //得到工程名:request.getContextPath()

    结果:/TEST

    //得到当前页面所在目录下全名称:request.getServletPath()

    结果:如果页面在jsp目录下 /TEST/jsp/test.jsp

    //得到页面所在服务器的全路径:application.getRealPath("页面.jsp")

    结果:D:/resin/webapps/TEST/test.jsp

    //得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();

    结果:D:/resin/webapps/TEST

    4、在Servlet中获取路径//得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。

    结果:E:/Tomcat/webapps/TEST

    //得到url地址栏地址:request.getRequestURL()

    结果:http://localhost:8080/TEST/test

    //得到相对地址:request.getRequestURI()

    结果:/TEST/test

    关于java获取java文件路径的四种方法就分享到这里了,当然并不止以上和大家分析的办法,不过小编可以保证其准确性是绝对没问题的。希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。

    展开全文
  • public class JarPathUtils { //获取当前项目下路径 或者 打包后jar目录 public String getPath() { String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); if...
  • importjava.lang.annotation.Annotation;importjava.util.HashSet;importjava.util.LinkedList;importjava.util.List;importjava.util.Set;public class ClassScaner implementsResourceLoaderAware {//保存过滤规则...
  • public static Class[] getClasses(String pckgname)throws ClassNotFoundException {ArrayList classes = new ArrayList();// Get a File object for the packageFile directory = null;try {ClassLoader cld = Thr...
  • 1. 引三方org.reflectionsreflections0.9.112. 代码//反射工具,指明扫描路径Reflections reflections = new Reflections(...//获取带Handler注解的类Set> classList = reflections.getTypesAnnotate...
  • 参考来源:以下代码一键...import java.io.File;import java.io.IOException;import java.net.JarURLConnection;import java.net.URL;import java.net.URLClassLoader;import java.util.Enumeration;import java.u...
  • 相信很多新手们都可能会像我一样,刚开始在写JAVA程序时,如果需要获取当前类所在的目录(例如:我习惯在开发时,日志就会写在当前程序的目录下,动态建立文件夹及日志文件TXT),那是没有什么问题的,可是打包成jar...
  • 提供个根据包路径,获取包下面所有类名的方法,参考链接:https://www.cnblogs.com/rinack/p/7606289.html import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java.util....
  • package ...import java.io.File;import java.io.FileFilter;import java.io.IOException;import java.net.JarURLConnection;import java.net.URL;import java.net.URLDecoder;import java....
  • Java获取当前jar所在目录

    千次阅读 2021-02-27 21:50:22
    但是打完放在Linux机器上跑的时候发现无法正确获取到该jar所在目录,导致无法运行;网上查阅后修改为如下方法:public String getPath() {String path = this.getClass().getProtectionDomain().getCodeSource()...
  • 一、直接贴代码 ... import org.springframework....import java.io.IOException; @SpringBootApplication public class Dcm4che3demoApplication { public static void main(String[] args) throws IOException {
  • //默认为bin路径中:E:\JAVA\FTPDownload\bin System.out.println("==================jarPath="+jarPath); String configPath = jarPath + "/config.properties"; if(jarPath.endsWith("target/classes/")){ ...
  • import java.io.File;import java.io.FileFilter;import java.io.IOException;import java.lang.annotation.Annotation;import java.lang.reflect.Method;import java.net.JarURLConnection;import java.net.URL;imp...
  • public class path{ public static void main(String []args){ //输出本程序/jar所在路径 System.out.println(System.getProperty("user.dir")); } }
  • 如何使用Java 验证以太坊钱包签名?

    千次阅读 2021-08-25 22:45:06
    如何使用Java 验证以太坊钱包签名? 场景 在dapp应用中需要用户进行签名某个文本,后台验证这个文本来源于这个账号,然后进行对应的登录操作,返回于服务器交互的token。 代码 js前端钱包工具类 import {ethers,...
  • 1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径2、使用File提供的函数获取当前路径:File directory = new File("");//设定为当前...
  • JAVA获取文件路径

    2021-02-12 09:00:53
    但是在项目中获取的文件路径,可能并不是我们想要的文件路径,因为开发项目中获取的路径与打成jar后的路径并不一致。以一个SpingCloud项目为例,且有多个模块1. 获取资源路径String filePath = this.getClass()....
  • 网上找到好多方法,但是貌似都是不准确,当我看到这个我内牛满面...//获取系统时间直接转换成yy--mm-dd HH:mm:ss 形式下面是一个例子package com.test.jdbc;import java.sql.Connection;import java.sql.DriverMan...
  • java获取省市区

    千次阅读 2021-03-15 01:37:34
    GPS data format 计算机与现代化 J ISUANJ I Y U XIANDAIHUA 总第 111 期 用 Java 实现 GPS 全球定位系统定位数据的提取王缓缓 ,李 虎 ( 中国地质大学信息......Java获取文件系统根目录列表_IT/计算机_专业资料。...
  • 通过项目下的包名获取包下的全部类public class GetClasses {public static Set> classes = new HashSet<>();public static void main(String[] args) {GetAllClass("com.bihang.seayatest.nio");System....
  • JAVA获取定位信息

    2021-02-12 19:31:36
    通过用户IP获取用户地址信息首先得到ip,有两种方式第一种方式:通过jsoup从一些工具网页获取第二种方式:通过获取用户对象信息得到前者需要jsoup的jar,不需要用户请求;后者需要用户发出请求,有request对象。...
  • Java获取项目或类路径

    2021-03-22 15:18:19
    本文参考封装在jar里面,执行jar,获取当前jar的绝对路径System.getProperty("java.class.path")Java获取当前class的绝对路径try {String path = new File(PathTest.class.getProtectionDomain()....
  • linux中java获取路径的方法发布时间:2020-05-06 11:11:26来源:亿速云阅读:700作者:小新今天小编给大家分享的是linux中java获取路径的方法,相信很多人都不太了解,为了让大家更加了解java获取路径的方法,所以给...
  • 运行效果:主要功能:1,jsp页面输入省份和城市 根据条件获取当地的天气信息2,java代码 利用第三方的省份和城市的路径地址本工程主要实现java获取天气预报的信息步骤1,创建工程weatherDemo2,创建结构3,创建类4,...
  • java获取本周 上周的所有日期

    千次阅读 2021-03-02 11:11:11
    JAVA获取本周 本月 本年 第一天和最后一天 /** * 日期工具类 */ public class DateUtils { /** * 获取今天 * @return String * */ public static String getTod ... Asp.net C# 获取本周上周本月上月本年上年第一天...
  • java默认的使用

    2021-03-05 21:48:35
    最近在写java测试程序的时候突然遇到了一个问题:java默认包中的public类是不能在其他包中直接调用的首先,总结一下默认包中类的使用范围,java默认包中的类可以实例化其它包中的public类,但是其它包中的类是不能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,412,064
精华内容 564,825
关键字:

java获取包

java 订阅