首页 > 其他分享 >Idea中关于输出控制台中文乱码解决

Idea中关于输出控制台中文乱码解决

时间:2024-06-01 21:12:18浏览次数:16  
标签:String Component Idea value System 乱码 println 控制台 out

  • 元注解
@Target(value = {ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Component {
    String value();
}
  • 实体类
@Component("userBean")
public class User {
}
* 测试
@Test
public void ComponentScan() throws UnsupportedEncodingException {
    HashMap<String, Object> beanMap = new HashMap<>();
    String packageName = "com.powernode.bean";
    //替换.为/,java中转义字符为\\,此时的packagePath为相对路径com/powernode/bean
    String packagePath = packageName.replaceAll("\\.", "/");
    //获取完整路径
    URL systemResource = ClassLoader.getSystemResource(packagePath);
    String path = systemResource.getPath();

    //由于path路径有有中文字符,所以windows中的中文重新用utf-8解码,否则乱码
    String decodedPath = URLDecoder.decode(path, "UTF-8");
    //转换为file实例
    File file = new File(decodedPath);
    //获取该file实例下的文件
    File[] files = file.listFiles();

    Arrays.stream(files).forEach(f->{

// System.out.println(f.getName());
// System.out.println(f.getName().split("\.")[0]);
String className = packageName + "."+f.getName().split("\.")[0];
// System.out.println(className);
//通过反射机制解析注解
try {
Class<?> aClass = Class.forName(className);
//判断类上是否有这个Component注解
if (aClass.isAnnotationPresent(Component.class)){
//获取注解
Component annotation = aClass.getAnnotation(Component.class);
//获取注解的值
String value = annotation.value();
Object obj = aClass.newInstance();
beanMap.put(value,obj);
// System.out.println(obj);

            };
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
            e.printStackTrace();
        }

    });
    System.out.println(beanMap);
}

标签:String,Component,Idea,value,System,乱码,println,控制台,out
From: https://www.cnblogs.com/DuWenjie/p/18226408

相关文章

  • 使用vxe-table组件,控制台报错:缺少必要的“{0}”参数,这可能会导致出现错误
    这是由于使用vxe表格,给列属性设置type="html"只需要开启存,需要启用column-config.useKey与row-config.useKey就可以了......
  • 新来的领导说,下周一上班前开发工具统一为:IntelliJ IDEA。
    新来的领导说,下周一上班前开发工具统一为:IntelliJIDEA。主要基于以下几点原因考虑:提高团队效率:使用统一的开发工具,如IntelliJIDEA,可以消除因不同工具的使用习惯、快捷键、调试方式等差异而导致的团队协作障碍。当所有开发者都在同一工具上工作时,代码审查、问题排查和知......
  • npm install安装时一直idealTree:npm: sill idealTree buildDeps问题
    解决方案:采用新的镜像地址,进入cmd之后输入:npm命令:npmconfigsetregistryhttps://registry.npmmirror.comyarn命令:yarnconfigsetregistryhttps://registry.npmmirror.com查看配置是完成npmconfiggetregistryyarnconfiggetregistry参考:https:......
  • 编码转换统一防止乱码
    publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{Stringorigin=newString("元字符".getBytes(StandardCharsets.UTF_8),"iso8859-1");StringfileName1=newString(origin.getBytes("iso88......
  • idea无法拉取maven坐标
    idea报错:java.net.ConnectException:Connectionrefused:connectatjava.base/java.net.PlainSocketImpl.connect0(NativeMethod)atjava.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101)atjava.base/java.net.AbstractPlainSocketImpl.doConn......
  • idea将代码上传到gitee上
    先将代码上传到git本地仓库中操作流程:如图注意项目介绍不能为空,随便写写就行这样就上传到了本地仓库之后在上传到gitee远程仓库中    gitee官网地址:Gitee-基于Git的代码托管和研发协作平台面向企业提供一站式研发管理解决方案,包括代码管理、项目管理、文......
  • 基于Idea的Maven工程创建
    1.Maven工程GAVP属性Maven工程相对之前的工程,多出一组gavp属性,gav需要我们在创建项目的时指定,p有默认值,后期通过配置文件修改。既然要填写的属性,我们先行了解下这组属性的含义! Maven中的GAVP是指GroupId、ArtifactId、Version、Packaging等四个属性的缩写,其中前三个......
  • PHP 使用 ZipArchive 解压避免乱码
    $filePath:压缩包路径../123.zip$path:要解压的目录../unzip/publicfunctionnewUnzip($filePath,$path){$zip=new\ZipArchive();if($zip->open($filePath)===true){//创建要解压的目录//获取解压的文件数组......
  • IDEA之如何Debug源码跟踪
    以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,我一般会直接启动Debug模式,方便随时调试代码。断点:在左边行号栏单击左键,或者快捷键Ctrl+F8打上/取消断点,断点行的颜色可自己去设置。Debug窗口:访问请求到达第一个断点后,会自动激活Debug窗口。如果没有自动激活,可......
  • C++ IO流:控制台输入输出
    C++输入输出头文件#include<iostream>,常用于控制台打印/OJ数据读取分别对应:控制台IO流/文件流/字符串流,本文主要介绍控制台输出输出流cin>>空格分隔cout<<控制台输出已知待读取元素的数量:cin>>n未知待读取元素的数量:while(cin>>val)另外,可以整行读取数据,然......