首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    有点长 Java API 设计清单

    不要向静态中添加实例duixi ▲2.3.21. 不要为使用者不应扩展public抽象提供public构造方法 ▲2.3.22. 不要滥用初始化 2.4. 接口 ▲2.4.1....只需要为可恢复错误抛出已确认异常 ▲3.4.3. 为了通知Api使用错误而抛出运行时异常 ▲3.4.4. 在适当抽象层次抛出异常 ▲3.4.5. 进行运行时预置条件检查 ▲3.4.6....为一个被不能为null参数抛出空指针异常 ▲3.4.7. 为一个除为null以外异常参数排除非法参数异常 ▲3.4.8. 为一个错误上下文环境中方法调用抛出非法状态异常 ▲3.4.9....当提供了多个构造方法时,遵循指南对其进行重载 ▲3.6.7. 建议使用构造方法而不是静态工厂方法 ▲3.6.8. 考虑使用无参构造方法 ▲3.6.9....不要从无参构造方法中抛出异常 ▲3.6.17. 不要向一个已经发布中添加显示构造方法 3.7. Setters和getters ▲3.7.1.

    52010

    有点长 Java API 设计清单

    不要向静态中添加实例duixi ▲2.3.21. 不要为使用者不应扩展public抽象提供public构造方法 ▲2.3.22. 不要滥用初始化 2.4. 接口 ▲2.4.1....只需要为可恢复错误抛出已确认异常 ▲3.4.3. 为了通知Api使用错误而抛出运行时异常 ▲3.4.4. 在适当抽象层次抛出异常 ▲3.4.5. 进行运行时预置条件检查 ▲3.4.6....为一个被不能为null参数抛出空指针异常 ▲3.4.7. 为一个除为null以外异常参数排除非法参数异常 ▲3.4.8. 为一个错误上下文环境中方法调用抛出非法状态异常 ▲3.4.9....当提供了多个构造方法时,遵循指南对其进行重载 ▲3.6.7. 建议使用构造方法而不是静态工厂方法 ▲3.6.8. 考虑使用无参构造方法 ▲3.6.9....不要从无参构造方法中抛出异常 ▲3.6.17. 不要向一个已经发布中添加显示构造方法 3.7. Setters和getters ▲3.7.1.

    66240

    有点长 Java API 设计清单

    不要向静态中添加实例duixi ▲2.3.21. 不要为使用者不应扩展public抽象提供public构造方法 ▲2.3.22. 不要滥用初始化 2.4. 接口 ▲2.4.1....只需要为可恢复错误抛出已确认异常 ▲3.4.3. 为了通知Api使用错误而抛出运行时异常 ▲3.4.4. 在适当抽象层次抛出异常 ▲3.4.5. 进行运行时预置条件检查 ▲3.4.6....为一个被不能为null参数抛出空指针异常 ▲3.4.7. 为一个除为null以外异常参数排除非法参数异常 ▲3.4.8. 为一个错误上下文环境中方法调用抛出非法状态异常 ▲3.4.9....当提供了多个构造方法时,遵循指南对其进行重载 ▲3.6.7. 建议使用构造方法而不是静态工厂方法 ▲3.6.8. 考虑使用无参构造方法 ▲3.6.9....不要从无参构造方法中抛出异常 ▲3.6.17. 不要向一个已经发布中添加显示构造方法 3.7. Setters和getters ▲3.7.1.

    82630

    测试必备之Java知识(一)—— Java基础

    Java基础 Java如何运行?...,代表父存储空间标识 代码块执行顺序 静态代码块(只执行一次)-> 构造代码块(每次执行构造方法前都执行)-> 构造方法 普通初始化顺序 静态属性(变量、方法)-> 静态代码块-> 成员属性 -...> 构造代码块 -> 构造函数 继承子类初始化顺序 父静态属性 -> 父静态代码块 -> 子类静态属性 -> 子类静态代码块 -> 父成员变量 -> 父构造代码块 -> 父构造方法 -> 子类成员变量...(需检查),程序级别错误,可恢复和预防,创建一个继承Exception是需检查异常 throw 用在方法体内,抛出异常对象名,可以抛出任意Throwable,需由方法体内语句或throws抛出处理...throws 用在方法名后,跟异常名,表示可能抛出异常,并不一定发生这些异常,由方法调用者处理异常 接口和抽象区别 接口 1、不包含非常量成员 2、都是静态抽象方法,可多继承 3、只能public

    59420

    100道最新Java面试题,常见面试题及答案汇总

    答案:try后面往往会跟着catch或finally,try抛出任何异常都会被捕获在catch中,在代码终止前要执行任务放在finally中。...答案:相同方法指的是方法名、参数以及返回类型都相同,因此返回类型不同两个方法是可以并存。 Q60:以下代码输出是什么?...答案:可以,在基于原生开发情况下,我们可以在Java中定义公共静态方法,但是不执行,然后用另外一种语言(如C)实现。 Q74:如何在Java中定义析构函数?...Q83:程序员手动抛出异常怎么办? 答案:为了处理手动抛出异常,我们可以使用throw关键字,并在catch中捕获和处理异常。 Q84:如何实现一个不允许其他(甚至派生)创建其对象?...答案:如果没有异常处理,那么程序将中止,且不会执行异常抛出之后语句。 Q89:如果定义了一个定义了多个构造函数,那么是否可以在一个构造函数中调用另一个构造函数?

    5.1K21

    Java内省(Introspector)机制:深入理解与应用

    这个提供了用于获取Java Bean元数据信息(如属性、事件和方法)静态方法。...当我们想要内省一个Java时,Introspector会分析这个公共方法,并根据特定命名规范(如getter和setter方法)来推断出属性。...内省机制不仅限于检查属性,它还可以用来探索方法、构造数以及事件。...需要注意是,为了安全地使用内省机制,我们应该处理可能抛出异常,如IntrospectionException,这可能在分析结构时发生。...确保只在内省安全上下文中使用它,并避免暴露敏感信息或允许未经授权操作。 错误处理:内省可能会抛出异常,如IntrospectionException或反射相关异常

    30210

    Java基础小结(二)

    2、重写好处在于子类可以根据需要,定义特定于自己行为。 也就是说子类能够根据需要实现父方法。 3、重写方法不能抛出检查异常或者比被重写方法申明更加宽泛异常。...例如: 父一个方法申明了一个检查异常 IOException,但是在重写这个方法时候不能抛出 Exception 异常,因为 Exception 是 IOException ,只能抛出 IOException...子类和父不在同一个包中,那么子类只能够重写父声明为public和protected非final方法。 重写方法能够抛出任何非强制异常,无论被重写方法是否抛出异常。...但是,重写方法不能抛出强制性异常,或者比被重写方法声明更广泛强制性异常,反之则可以。 构造方法不能被重写。 如果不能继承一个方法,则不能重写这个方法。...重写接口中声明方法时,需要注意以下规则: 在实现接口方法时,不能抛出强制性异常,只能在接口中,或者继承接口抽象抛出该强制性异常

    67910

    RxHttp 一款让你眼前一亮 Http 请求框架

    而是通过自定义解析器生成,里面的code判断、Response都是开发者自定义如何自定义解析器,请查看本文5.1章节——自定义Parser。...设置debug模式,默认为false,设置为true后,发请求,过滤"RxHttp"能看到请求日志 RxHttp.setDebug(boolean debug) //非必须,只能初始化一次,第二次将抛出异常...等方法, IRequest:接口,里面定义了一系列getXxx方法,通过这些方法最终构建一个Request对象 Param:接口,是一个空接口,继承了前面3个接口,里面有一系列静态方法可以获取到Param...组拼成新泛型类型,随后通过convert(Response, Type)方法得到Response对象,接着又对code及T做了判断,如果不正确就抛出异常,最后返回T。...= 0 || list == null) { //code不等于0,说明数据不正确,抛出异常 throw new ParseException(String.valueOf(

    2K20

    Java入门必背100条

    ④ 子类重写方法抛出异常类型不大于父被重写方法抛出异常类型。 57、什么是重写和什么是重载? 概念 说明 重 载 是指允许存在多个同名方法,而这些方法参数不同。...private static Bank instance = new Bank(); //3.提供公共静态方法,返回对象 public static Bank getInstance...⑤如何在子类(或实现)方法中调用父、接口中被重写方法。...“抛”:程序在正常执行过程中,一旦出现异常,就会在异常代码处生成一个对应异常对象,并将此对象抛出。...99、子类重写方法抛出异常类型不大于父被重写方法抛出异常类型。 100、在程序执行中,除了自动抛出异常对象情况之外,我们还可以手动throw一个异常对象。

    1K20

    如何检查参数合法性?

    推荐做法 对公共和保护方法,使用java文档@throws标签来标注参数值不合法将抛出异常。...调用m.signum()时候这个异常被标注在级别BigInteger文档注释上,级别的注释适用于所有的公共方法参数,这是一个避免在每个方法单独文档化标注NullPointException这种混乱好方法...举个例子:静态工厂方法:输入一个 int数组 ,返回一个array list视图, 如果客户端传入 null, 这个方法会抛出NPE, 因为方法会有一个直接检查,调用了Objects.requireNonNull...构造函数代表了一个特殊例子原则:你应该检查即将存储稍后会用到参数合法性。 检查构造函数参数合法性非常重要,它可以防止构造一个违反不变性对象。...换句话说,计算常常会抛出参数合法性检查异常,并不会匹配方法在文档中申明异常。这种场景下,你应该使用异常翻译成语。转换自然异常为正确异常

    1.3K10

    编程语言:类型系统本质

    静态类型与动态类型 我们经常听到“静态与动态类型”这个问题,其实,两者区别在于类型检查发生时间。 静态类型系统在编译时确定所有变量类型,并在使用不正确情况下抛出异常。...动态类型系统在运行时确定变量类型,如果有错误则抛出异常,如果没有适当处理,可能会导致程序崩溃。动态类型不会在编译时施加任何类型约束。...接下来,我们实现一个BinaryExpression抽象,在其中存储两个操作数。但是,我们让eval()是抽象方法,从而要求派生实现该方法。...有了这些小构造块,我们就可以建立子和单子这样结构。我们不会深入讨论细节,只是简单说明一下。许多领域(如集合论,甚至类型系统)都可以用范畴论来表达。...Functor 代码实现示例 class Functor { // 构造函数,创建子对象时候接收任意类型值,并把值赋给它私有属性 _value constructor(value)

    2.6K31

    【C++】特殊设计 — 不能被拷贝 , 只能在堆栈上创建对象 ,不能被继承

    每当玩家尝试复制“永恒之心”时,游戏会抛出一个错误:“魔法宝物独一无二,无法复制!”。这确保了游戏中只有一个“永恒之心”,增加了它神秘感和价值。...只能在堆上创建对象 - 豪华游艇 有一个豪华游艇模拟器。在这个模拟器中,游艇是一个复杂且昂贵对象,它需要在堆上动态分配资源,比如内存来存储游艇详细规格和状态。...2 不能被拷贝 拷贝只会发生在两个场景中:拷贝构造数以及赋值运算符重载 因此想要让一个禁止拷贝,只需让该类不能调用拷贝构造数以及赋值运算符重载即可 在C++98中我们会将拷贝构造函数和赋值重载函数进行私有化...4 只能在栈上创建对象 同上将构造函数私有化,然后设计静态方法创建对象返回.注意为了防止在堆上创建对象,我们需要将new delete操作符重载函数进行删除!这样就将在堆上创建彻底封死了!...这些设计不仅展示了C++强大,也让我们看到程序员先辈们是如何巧妙地解决难题。通过这几个特殊,我们代码能力肯定有许多长进,C++学习过程也变得更加丰富多彩了!

    10710

    精选Java基础面试120题

    new Student()对象成员信息 加载静态成员 执行静态代码块 加载对象中普通成员 执行构造代码块 执行构造方法 将new Student()地址赋值给 s 变量 5.7 子父构造方法执行有什么特点...先执行所有的静态代码块,再执行所有的构造代码块,最后执行构造方法 静态代码块只执行一次, 构造代码块和构造方法,每创建一次对象就执行一次 5.9 抽象是什么,抽象特点?...隐藏实现细节,提供公共访问方式;提高了代码复用性;提高安全性。 6.3 Java 中继承特点是什么以及继承注意事项?...8.6 请说说异常注意事项及如何使用异常处理? 子类重写父方法时,子类方法必须抛出相同异常或父异常子类。...如果父抛出了多个异常,子类重写父时,只能抛出相同异常或者是他子集,子类不能抛出没有的异常

    78120

    Java基础入门笔记05——面向对象,创建对象内存分析,继承,封装,多态,object,this&&super,方法重写,引用类型强制转换,instanceof,抽象,内部类,接口,异常。[通

    (继承,多态) ---- 和对象关系 使用new关键字创建对象时 分配内存空间 给创建好对象进行默认初始化(以及调用构造函数——构造器) 构造器 也称构造方法...因为obj已经被自动转换为了Person类型,丢失了go方法 // Person类型是Student,Person并没有go()方法 // 所以如何让obj可以使用go方法?...(b是临时变量名),则可以忽视A中问题,执行C;如果A中没有出现B异常将不会执行C //D中语句无论如何都会执行 int a=1; int b=0;...() ---- 关键字throw——主动抛出异常,在方法中使用,可以在方法中进行捕获 关键字throws——如果该方法处理不了这个异常,就只能在该方法上,往外抛异常(抛给调用方法地方)...---- 自定义异常 自定义异常需要继承Exception(一般不需要自定义异常) 此处好像有一点点错误,右边框框里写,此处是将异常抛给了调用者,所以好像应该去掉test()方法体内那个主动抛出异常

    99020

    重温《单元测试艺术》,总结常用知识点

    如果测试代码很多,用户将搞不清楚到底哪行抛出异常。...Assert.ThrowsException(() => _calculator.Add(-5, 0)); 这里When后面的Lambda指示当第一个参数小于0,然后用Do抛出一个异常...8.2 如何测试私有方法 私有方法通常比较难测试,不过你可以这么想:私有方法不会无缘无故地存在,最终在某个地方有公共方法会调用这个私有方法。...看到一个私有方法时候,你应该找到使用这个方法公共用例并对这个公共用例进行测试。 如果一个私有方法真的值得进行测试,那么它也许应该设为公共静态。有几种方式处理私有方法: 使方法成为公共方法。...如果它真的那么重要,那把它设为公共并不一定是坏事。使它变成正式公共契约可以防止它被任意破坏。 把方法提取到新。 使方法成为静态方法。

    1.5K31
    领券