用python自动访问谷歌浏览器时会出现data界面,很是烦人.在网上搜索,有说是因为webdriver和google版本不匹配导致的,就下过各种版本,结果都一样. 后来明白了,出现data的原因只是因为我们没有设置用户数据目录,才会出现data提醒,可以随意创建一个文件夹,用来存储google数据. 所以只需要在代码中将用户目录设置一下就OK. from selenium import webdriver options = webdriver.ChromeOptions() options.…
Android app启动activity并调用onCreate() 方法时都默默地干了什么?   在AndroidManifest.xml文件中的<intent-filter>元素中有这么两句: <intent-filter>     <action android:name="android.intent.action.MAIN"/>     <category android:name="android.intent.categ…
本文涉及到的概念 1.为什么重载equals方法时,要遵守通用约定 2.重载equals方法时,要遵守哪些通用约定   为什么重载equals方法时,要遵守通用约定 Object类的非final方法都有明确的通用约定,这些方法是被设计成被重载的.重载时,如果不遵守通用约定,那么,其它依赖于这些通用约定的类(例如HashMap和HashSet)就无法结合该类一起正常工作----<<effective java>>     quals方法实现了等价关系,重载时要遵守的通用约定: a.自…
对象为null时调用改对象的方法会报错…
分析以下需求,并用代码实现: 1.定义动物类: 行为: 吼叫:没有具体的吼叫行为 吃饭:没有具体的吃饭行为 2.定义缉毒接口 行为: 缉毒 3.定义缉毒狗:犬的一种 行为: 吼叫:汪汪叫 吃饭:狗啃骨头 缉毒:用鼻子侦测毒 4.定义测试类: 使用多态的形式创建缉毒狗对象,调用缉毒方法和吼叫方法 package com.itheima5; //抽象动物类 public abstract class Animal { public abstract void roar(); public abstr…
背景 遇到问题:在进行Spring单元测试编写时,发现被测方法是一个私有方法,无法直接通过注入对象调用 解决思路:首先想到通过反射获取该私有方法的访问权限,并传入注入对象,最终调用对象的私有方法. 出现的异常 运行时抛出空指针异常 定位问题 点击异常代码行打上断点,debug调试 通过查看变量值发现roleMapper为空,从而导致空指针 而roleMapper是传入this对象的属性,因此,问题来自传入的对象 分析问题 通过分析this对象,可以发现它是一个被Cglib代理后的实例,由此可知,…
一. 面向对象初识 我们在生活中做事都是面向过程的,前面实现一些基本逻辑功能代码也是用面向过程的语句实现的,后来学了函数,把这些功能又装到了函数里.但用面向过程的方法去写程序,只能实现一个功能,我们要实现很多功能时,需要写很多个代码块,每一个代码块的作用域都是全局的,要相对一个功能进行改动,还要考虑与其它代码块的联系,这样就造成了代码的可扩展性和维护性.那么装到函数里就好了吗?装到函数里变量只能作用于函数里,其他的函数无法使用变量.这时可以用面向对象的程序设计方法解决这些问题.面向对象的核心是对…
通过引用类型变量来访问所引用对象的属性和方法时,Java 虚拟机将采用以下绑定规则: 实例方法与引用变量实际引用的对象的方法进行绑定,这种绑定属于动态绑定,因为是在运行时由 Java 虚拟机动态决定的.例如,animal.eat() 是将 eat() 方法与 Cat 类绑定. 静态方法与引用变量所声明的类型的方法绑定,这种绑定属于静态绑定,因为是在编译阶段已经做了绑定.例如,animal.staticEat() 是将 staticEat() 方法与 Animal 类进行绑定. 成员变量(包括静态…
C#编译器优化那点事   使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码开关即optimize开关,和debug开关一起,有以下几种组合. 在Visual Sutdio中新建一个C#项目时,项目的“调试”(Debug)配置的是/optimize-和/debug:full开关,而“发布”(Release)配置指定的是/optimize+和/debug:pdbonly开关…
此文章有问题,待修改! 使用Mybatis时,有时需要批量增删改查,这时就要向mapper方法中传入集合类型(List或Set)参数,下面是一个示例. // 该文件不完整,只展现关键部分 @Mapper public class UserMapper { List<User> selectByBatchIds(List<Long> ids); } <!-- 省略不重要代码,只保留与selectByBatchIds()方法对应的部分 --> <select id=&…