URLDecoder().decode(filePath, "UTF-8");报错

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小蓝 2023-05-09 13:09:27

同学你好~

1.猜测同学使用的版本中,decode方法已经是静态方法了,所以需要将语句更换为URLDecoder.decode()这样的静态调用方式。

2.如果更换为静态调用方式也会报错,建议同学将代码更改回来,然后将鼠标放置在标红的代码上,将报错信息提供一下;

3.另外需要同学提供一下依赖的版本和完整的代码,即pom.xml和本类代码。

祝学习愉快~

  • 提问者 万物生长5087351 #1

    pom.xml代码

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>s06</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <repositories>
            <repository>
                <id>aliyun</id>
                <name>aliyun</name>
                <url>https://maven.aliyun.com/repository/public</url>
            </repository>
        </repositories>
    
        <dependencies>
            <!-- Dom4j是Java的XML解析组件 -->
            <dependency>
                <groupId>org.dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>2.1.1</version>
            </dependency>
            <!-- Jaxen是Xpath表达式解释器 -->
            <dependency>
                <groupId>jaxen</groupId>
                <artifactId>jaxen</artifactId>
                <version>2.0.0</version>
            </dependency>
        </dependencies>
    
        <properties>
            <maven.compiler.source>17</maven.compiler.source>
            <maven.compiler.target>17</maven.compiler.target>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
    </project>

    本类代码

    package com.imooc.spring.ioc.context;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.Node;
    import org.dom4j.io.SAXReader;
    
    import java.io.File;
    import java.net.URL;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class ClassPathXmlApplicationContext implements ApplicationContext{
        private Map iocContainer = new HashMap();
        public ClassPathXmlApplicationContext(){
            try{
                String filePath = this.getClass().getResource("/applicationContext.xml").getPath();
                filePath = new URLDecoder().decode(filePath, "UTF-8");
                SAXReader reader=new SAXReader();
                Document document=reader.read(new File((filePath)));
                List<Node> beans = document.getRootElement().selectNodes("bean");
                for(Node node : beans){
                    Element ele = (Element)node;
                    String id = ele.attributeValue("id");
                    String className = ele.attributeValue("class");
                    Class c=Class.forName(className);
                    Object obj=c.newInstance();
                    iocContainer.put(id,obj);
                }
                System.out.println("IOC容器初始化完毕");
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        @Override
        public Object getBean(String beanId) {
            return iocContainer.get(beanId);
        }
    }

    图片

    https://img1.sycdn.imooc.com//climg/6459d6b8091747b312670571.jpg

    2023-05-09 13:14:50
  • 同学你好,从报错截图中看,是没有进行导包操作,同学可以点击import按钮导入尝试一下。

    https://img1.sycdn.imooc.com//climg/6459dac4090cec1c05890279.jpg

    祝学习愉快~

    2023-05-09 13:31:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师