分类 默认分类 下的文章

package com.lianxin.test;

/**

import java.io.IOException;
import java.security.CodeSource;
import java.security.ProtectionDomain;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

public class JarFind {

public static void main(String[] args) {
    String PakageString = "org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth";
    GetFilePathByPackage(PakageString);
    System.out.println("\r\n");
    // 获取Class路径
    String alljar = System.getProperty("java.class.path");
    String[] alljarpath = alljar.split(";");
    // 根据路径遍历,该路径下的Jar包是否有该包,有就打印
    for (String jarpath : alljarpath) {
        if (jarpath.contains("jar")) {
            String[] jar = new String[2];
            jar[0] = jarpath;
            jar[1] = PakageString;
            getClassNameByJarAndPackage(jar);
        }
    }
}

/**
 * 根据类名打印JVM加载的类对应的Jar包路径,如GetFilePathByPackage("java.util")。
 *
 * @param PakageString 类名
 */
public static void GetFilePathByPackage(String PakageString) {
    System.out.println("查找的类:" + PakageString);

    try {
        Class<?> c = Class.forName(PakageString);
        ProtectionDomain pd = c.getProtectionDomain();
        CodeSource cs = pd.getCodeSource();
        System.out.println("加载的类对应的路径:" + cs.getLocation().toString());
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

}

/**
 * 根据jar包路径和包名来查询jar包中是否含有有关类
 *
 * @param jar jar[0] jar路径 jar[1] 包名
 */
@SuppressWarnings("resource")
public static void getClassNameByJarAndPackage(String[] jar) {
    String jarFilePath = jar[0];
    String packagePath = jar[1].replace(".", "/");
    try {
        JarFile jarFile = new JarFile(jarFilePath);
        Enumeration<JarEntry> entrys = jarFile.entries();
        while (entrys.hasMoreElements()) {
            JarEntry jarEntry = entrys.nextElement();
            String entryName = jarEntry.getName();
            if (entryName.equals(packagePath + ".class")) {
                System.out.println("类路径:" + entryName + "\r\n" + "jar包的路径:" + jarFilePath);
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

https://blog.csdn.net/wzw114/article/details/117423495

匿名内部类的调用
https://www.bilibili.com/video/BV1Gh41187uR?p=6&spm_id_from=pageDriver&vd_source=8a97a93caad7a94090d3afb6a8de7574

Lambda关键词:

 alt+回车

Lambda就是优化匿名内部类的

public main (){
       int i=calculateNum(new IntBinaryOperator(){
        @Override
        public int applyAsInt(int left,int right){
         return left+right;
       } 
      })
    
      
}
    
public static int calculateNum(IntBinaryOperator intBinaryOperator){
      int a=10;
      int b=20;
      return intBinaryOperator.applyAsInt(a,b);
}

修改成lambda

 public main (){
   int i=calculateNum((int left,int right)->{
     return left+right;
   } 
  })

  
}

public static int calculateNum(IntBinaryOperator intBinaryOperator){
  int a=10;
int b=20;
return intBinaryOperator.applyAsInt(a,b);
 }