会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132838个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 3136楼

2020 12 20----------

package com.bjsxt.schema;

import java.io.File;
import java.io.IOException;

import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

import org.xml.sax.SAXException;

public class Test {
   public static void main(String[] args) throws SAXException {
      //(1)创建SchemaFactory工厂
      SchemaFactory sch=SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
      //(2)建立验证文件对象
      File schemaFile=new File("book.xsd");
      //(3)利用SchemaFactory工厂对象,接收验证的文件对象,生成Schema对象
      Schema schema=sch.newSchema(schemaFile);
      //(4)产生对此schema的验证器
      Validator validator=schema.newValidator();
      //(5)要验证的数据(准备数据源)
      Source source=new StreamSource("book.xml");
      //(6)开始验证
      try {
         validator.validate(source);
         System.out.println("成功");
      } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
         System.out.println("失败");
      }
   }
}
"C:\Program Files\Java\jdk1.8.0_261\bin\java.exe" "-javaagent:E:\IDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=50729:E:\IDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=GBK -classpath "C:\Program Files\Java\jdk1.8.0_261\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\rt.jar;E:\IDEA\第三阶段\out\production\schemaProject" com.bjsxt.schema.Test
Exception in thread "main" org.xml.sax.SAXParseException; schema_reference.4: 无法读取方案文档 'file:/E:/IDEA/%E7%AC%AC%E4%B8%89%E9%98%B6%E6%AE%B5/book.xsd', 原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是 <xsd:schema>。
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:306)
	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4207)
	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4190)
	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument1(XSDHandler.java:2513)
	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2220)
	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:581)
	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:610)
	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:569)
	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:535)
	at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:269)
	at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
	at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:654)
	at com.bjsxt.schema.Test.main(Test.java:21)
Caused by: java.io.FileNotFoundException: E:\IDEA\第三阶段\book.xsd (系统找不到指定的文件。)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:622)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150)
	at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:583)
	at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:686)
	at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaDOMParser.parse(SchemaDOMParser.java:531)
	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2208)
	... 8 more

Process finished with exit code 1

schemaProject.zip

$5`0832T0CDYF5[$7B[JHLW.png

运行不了..

JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 3138楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 3139楼

//对对象进行反序列化
public static void test2(){
    ObjectInputStream ois = null;
    try{
        ois = new ObjectInputStream(new
                FileInputStream("E:/object.txt"));
        Person p =(Person)ois.readObject();
        System.out.println(p);
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        try{
            if(ois != null){
                ois.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
java.io.InvalidClassException: cn.bzsxt.bytestream.User; local class incompatible: stream classdesc serialVersionUID = 1732458846381710476, local class serialVersionUID = -6028733942570062611
    at java.base/java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:689)
    at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1898)
    at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1764)
    at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2055)
    at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1586)
    at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
    at cn.bzsxt.Test.Test.test2(Test.java:40)
    at cn.bzsxt.Test.Test.main(Test.java:11)

老师查了好久说不是代码问题 测了好几遍都报错

public class Person implements Serializable {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }


JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 3140楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/智能电话本项目实战 3142楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 3143楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 3145楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 3146楼

调用父类的方法失败

源码:

public class Test{
    public static void main(String[] args) {
        CarFunction newCar = new Car();
        //newCar.move();
        FlyCar flyCar = new FlyCar(newCar);
        //flyCar.fly();
        AICar aiCar = new AICar(flyCar);
        aiCar.AI();
    }
}

//定义接口
interface CarFunction{
    void move();    //抽象方法:移动方式
}

//具体的构建角色Car类
class Car implements CarFunction{
    public void move(){
        System.out.println("在陆上行驶的汽车");
    }
}

//装饰器角色
class SuperCar implements CarFunction{
    private CarFunction newCar;
    SuperCar(CarFunction newCar){
        this.newCar = newCar;
    }

    @Override
    public void move() {
        newCar.move();      //调用真实角色的行驶的方法
    }
}

//
class FlyCar extends SuperCar{
    public FlyCar(CarFunction newCar){
        super(newCar);
    }

    @Override
    public void move() {
        super.move();        //调用父类的行驶方法
        this.fly();
    }

    public void fly(){
        System.out.println("拥有飞行功能的汽车");
    }
}

class AICar extends SuperCar{
    AICar(CarFunction newCar){
        super(newCar);
    }

    @Override
    public void move() {
        super.move();
        this.AI();
    }

    public void AI(){
        System.out.println("拥有人工智能自动驾驶的汽车");
    }
}

class WaterCar extends SuperCar{
    WaterCar(CarFunction newCar){
        super(newCar);
    }

    @Override
    public void move() {
        super.move();
        this.water();
    }

    void water(){
        System.out.println("可以水上行驶的汽车");
    }
}

运行结果:


JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 3148楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637